假设我编了3个类A\B\C,这三个类之间的调用关系是A调用B,B调用C,所以在进行引用的时候就出现了问题,它们的路径应该如何设置,包有应该如何安排。我的出错情况大致如下:
编译完成的BC两个类在同一路径下,它们包的名称与路径名称相同,环境变量也设置正确,A在它们的上一级路径。对A进行编译的时候没有错误,但是在执行A的时候提示:
Error:Error001
Detial:java.lang.ClassNotFoundException:
        at java.lang.Class.XXX(Native Method)
        at java.lang.Class.XXX(Class.java:140)
        at MyPackage.B.XXXX(B.java:69)
        at MyPackage.B.XXXX(B.java:92)
        at MyPackage.B.XXXX(B.java:127)
        at A.<init>(A.java:23)
        at A.main(A.java:153)其中Error:Error001是打印出的我自定义的错误编号,该错误发生在B的一开始。期盼回答:)

解决方案 »

  1.   

    p/p1/A.java
        /p2/B.java
           /C.javaB:package p1.p2;
    C:package p1.p2;
    A:package p1;
      import p1.p2.*;运行:p> java p1.A
      

  2.   

    同意暮色,不在同一个目录要用package
    在B中第一行增加
      package p1.p2;
    C的第一行增加
      package p1.p2;
    A的第一行增加
      package p1;
      import p1.p2.*;p1文件夹下有A.java和p2文件夹
    p2文件夹下有B.java和C.java
    编译之后的class还是依照上面的路径存放
      

  3.   

    我已经这样做了,但是还不行,错误依旧,估计是什么原因呢?我给出详细代码,各位帮我分析一下。
    磁盘目录结构:
    \CustomPackage\CustomUser.java
                  \p2\DB.java
                  \p2\IniFile.java这三个文件的包设置如下:
    CustomUser.java
      package CustomPackage;
      import java.sql.*;
      import java.text.SimpleDateFormat;
      import CustomPackage.p2.*;DB.java
      package CustomPackage.p2;IniFile.java
      package CustomPackage.p2;以上配置应该和你们的写法相同,编译CustomUser.java也没有任何错误,都生成了.class文件,但是在命令行执行java CustomUser的结果如下:
    Exception in thread "main" java.lang.NoClassDefFoundError: CustomUser (wrong name: CustomPackage/CustomUser)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:272)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)谢谢!
      

  4.   

    命令执行错误,执行java命令时需要带包路径运行的1、先运行cmd 命令
    2、将路径转向你的类路径下,但不要进入到包下面
      如你的类在D盘
      D:/work/test/class/CustomPackage/CustomUser.class
      而 CustomPackage 是你的包名,那么
      
      d:\>cd D:/work/test/class
        而不是
        d:\>cd D:/work/test/class/CustomPackage
    3、执行
      D:\work\test\class>java CustomPackage.CustomUser
      

  5.   

    放在那层入境不重要,重要的是在A类中一定要使用import把B和C类导入到A类中.
      

  6.   

    java CustomPackage.CustomUser
    ps:建议你也用个工具,推荐eclipse,你就没这种烦恼了!