weixin_42356260
2010-01-22 21:16
浏览 252
已采纳

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

同一个包的公开类怎么访问不到啊?
找了好久,应该没什么错误的呀?大家帮我看下!!!
问题描述:[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{
......

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

24条回答 默认 最新

  • CaiHuajiang 2010-01-23 10:29
    已采纳

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

    点赞 评论
  • CaiHuajiang 2010-01-22 21:26

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

    点赞 评论
  • 拽拽的初行者 2010-01-22 21:38

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

    可能的原因:

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

    [/color]

    点赞 评论
  • wocsok 2010-01-22 22:29

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

    点赞 评论
  • iteye_13500 2010-01-23 08:33

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

    点赞 评论
  • CaiHuajiang 2010-01-23 09:24

    帮你看看:QQ738116277

    点赞 评论
  • wocsok 2010-01-23 09:35

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

    点赞 评论
  • wocsok 2010-01-23 09:49

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

    点赞 评论
  • wocsok 2010-01-23 09:50

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

    点赞 评论
  • wocsok 2010-01-23 09:52

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

    点赞 评论
  • wocsok 2010-01-23 10:00

    [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]

    点赞 评论
  • CaiHuajiang 2010-01-23 10:05

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

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:08

    要不把代码放上来看看

    点赞 评论
  • wocsok 2010-01-23 10:10

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:34

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:35

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:39

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:44

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

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:46

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

    点赞 评论
  • wocsok 2010-01-23 10:48

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:52

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

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:54

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

    点赞 评论
  • CaiHuajiang 2010-01-23 10:59

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

    点赞 评论
  • CaiHuajiang 2010-01-23 11:07

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

    点赞 评论

相关推荐 更多相似问题