同一个包的公开类怎么访问不到啊?

同一个包的公开类怎么访问不到啊?
找了好久,应该没什么错误的呀?大家帮我看下!!!
问题描述:[b]同一个包(app01a)下类ControllerServlet无法找到公开类ProductTO[/b]部分代码如下
1)app01a/ControllerServlet.java:

package app01a;
......
public class ControllerServlet extends HttpServlet{
......
else if(action.equals("saveProdcut")){
ProductTO product=new ProductTO();//出错,找不到类ProductTO
......

2)app01a/ProductTO.java:

package app01a;
......
public class ProductTO implements Serializable{
......

我知道为什么了。。
你是用记事本写的代码。然后在app01a包下调用javac.exe ControllerServlet.java来进行编译。。
正确的做法是,
在src目录调用javac.exe app01a/ControllerServlet.java

看看ProductTO的构造函数有什么特殊的么

[color=blue]不是类找不到,恐怕是这个构造函数ProductTO()有问题吧?

可能的原因:

[b]有构造方法,但是没有无参的构造方法。[/b]

[/color]

[color=indigo]我以前也碰到过这种情况,可能是没编译了 你重新编译一下 也许就会好了[/color]

最大的可能性,某个类有没有编译通过 :)

帮你看看:QQ738116277

[color=indigo]和你的类具体实现没什么大关系吧 你把eclipse设置成自动编译了么[/color]

[color=indigo]哦哦 我说的么 在IDE环境下 应该不会有这种问题 你把你的路径结构贴上来,把具体操作说下[/color]

[quote]public class ProductTO implements Serializable [/quote]
[color=indigo]再就指出你点不规范,但是和这个错误没关哦。 实现序列化接口的类 都要写序列化ID啊 这个如果没写 等你真正走远程服务器的时候,会有问题的[/color]。

[color=violet]你得保证 这两个类的 class文件是在一个包下。[/color]

[quote] D:\Java\0122\app01a\WEB-INF\classes\app01a\ProductTO.java
D:\Java\0122\app01a\WEB-INF\classes\app01a\ControllerServlet.java[/quote]
[color=indigo]你这个只是能证明你的JAVA类是在一个包下,但是你的class文件那?是否在一个包下,运行是运行的class和JAVA文件无关[/color]

[quote]代码是我用记事本写的[/quote]

只能怀疑中间是不是出现了奇怪的字符了。。
拿到eclipse IDE中去看看就知道了

要不把代码放上来看看

[color=indigo]你放到IDE上看下吧,那个有提示,直接能定位到你真正的错误所在了。[/color]

javac.exe ControllerServlet.java
不是路径错误,你是你没有按照规范来。。
javac.exe会到当前目录去找包app01a/ControllerServlet.java,当然找不到的。。
所以你编译程序要到src文件夹下去。

有IDE就会方便多了,,这些关系引用,目录结构都处理好了的。

Source Packages是放正常运行的java文件的。。
Test Packages其实也是java代码,,所以与Source Packages本质一样的,,其中的包名都不能冲突。只是由于是测试代码,所以单独放开的。
Libraries就是运行要用的jar包,是java程序运行时要用的。
Test Libraries通常放junit,当然也可以放其它包,,跟Libraries本质是一样的

WEB-INF是web工程中的。
src文件是存放java代码的。。

对于IDE来说,默认认为:所以的java代码都要放到source类路么中去的,,项目中可以使用多个source路径,src是默认的source路径。

[quote]好奇怪,我在NetBeans 6.5下ap01a项目里Source Packages下的ProductTo.java编译通过,却无法找到对应的Class文件? [/quote]
不太理解你的意思,,
在source路径中,每个java文件要放到对应的包中。。你没放错吧。

[quote]好奇怪,我在NetBeans 6.5下ap01a项目里Source Packages下的ProductTo.java编译通过,却无法找到对应的Class文件? [/quote]
一般IDE显示的只是你的JAVA文件,class文件不显示,如果显示比较让人感觉乱套。
但是它执行的时候,会去根据你加入的source,执行真正的class文件

[quote]Source Packages下建的包app01a里的ProductTo.java文件编译后无法找到ProductTo.class文件? [/quote]

其class文件在web-inf/classes文件夹中,,对于IDE来说,是隐藏的,,因为没有看的必要。。

感觉你得要熟悉一下项目工程,最好找本书来看的。。
推荐servlet与jsp核心编程。。在其中,你问的这些问题都有答案。

《servlet与jsp核心编程》个人感觉对于你来说,正合适。
我也是看这本书走上JAVA道路的

[quote]我在NetBeans 里面怎么无法创建jsp文件呀? [/quote]
这个我也没办法了,,没法理解。。要说怎么可能!