这个问题在JB中可以解决,即handler.a--->B. 正常情况下,这是不可能的.但是反过来, B-->handler.a是可以的.B是属于unnamed包.handler.a是没法找到它的, 因为不知道B的包名.在不在同一个目录下是没有意义的,就像你可以把a.class放到<directory>下,但并不能改变它属于handler包的事实,对B亦然.

解决方案 »

  1.   

    你把B.class所在的目录设置进classpath就可以了。
      

  2.   

    oicu(阿猫),我已经把b.class所在目录设近classpath了,helpall(),多谢指点,但是,不用jb真的就没有办法解决了么? 如果我把B也声明在handler的包里面可以么?
      

  3.   

    为什么不在B中加一句package handler;呢?不省得麻烦吗?
      

  4.   

    首先,介绍一个最简单的方法,你把a.java和b.java放在同一个目录下,如directory目录下,然后,在该目录下用javac -d . *.java来编译当前目录下的所有文件,java编译器会自动将class文件按照package放置,同时,可以解决嵌套调用的问题
    另外的方法就是将java文件按照package放置,可能与你提到的问题情况相同。那样的话,需要你在directory目录下编译,也是用javac -d . handle/a.java,需要b.java 按照package放置在directory目录下即可
    还有一个最好的方法,去下载一个ant(www.apache.org上有载),然后,写build.xml编译,这个是个比较好的处理方式,而且很方便,不会编译未修改的类
    节日快乐
      

  5.   

    1)把B也声明在handler的包里面,然后重新编译;
    2)或者将B.java和B.class都放在handle目录外面即可,然后重新编译a.java
       javac handle/a.java
    这两种应该都可以的!