同一包下的Data.java文件和output.java文件,
output.java文件编译不过去,什么原因?Data.java文件:
package order5;public class Data {
    String name;
    int num;
    int price;
    
    Data()
    {
    
    }
    Data(int n2,int p)
    {
     name="abc";
     num=n2;
     price=p;
    }
}
output.java文件
package order5;
class output
{
      public static void main(String args[])
      {
        Data pingguo = new Data(10,20); 
        System.out.println("=");
        
      }}
output.java文件编译不过去,提示错误:E:\Program Files\JCreatorV3\MyProjects\order5\src\order5>javac output.java
output.java:24: 找不到符号
符号: 类 Data
位置: 类 order5.output
        Data abc = new Data(10,20);
        ^
output.java:24: 找不到符号
符号: 类 Data
位置: 类 order5.output
        Data abc = new Data(10,20);
                       ^
2 错误E:\Program Files\JCreatorV3\MyProjects\order5\src\order5>java output
Exception in thread "main" java.lang.NoClassDefFoundError: output
什么原因?

解决方案 »

  1.   

    javac -classpath E:\Program Files\JCreatorV3\MyProjects\order5\src output.java
    直接用javac *.java也行
      

  2.   

    谢谢gnipiem的回答,不过我把order5工程文件都复制到d盘,然后按照你的方法做,也不行。   D:\>javac -classpath D:\order5\src\order5 output.java
    错误:无法读取: output.java
    1 错误D:\>javac -classpath D:\order5\src output.java
    错误:无法读取: output.java
    1 错误 D:\>javac -classpath D:\order5 output.java
    错误:无法读取: output.java
    1 错误就没有再试javac *.java。
      

  3.   

    编译:
    F:\order5>javac *.java
    (或:F:\>javac order5\output.java)运行:
    F:\>java order5.output输出:
    =
    关键点:
    1.当不加-classpath时,类路径就是当前目录(.)
    2.源文件有package时,package的上级目录得在类路径中上面编译、运行都采用不加-classpath的方式,因为order5
    刚好在当前目录F:\下面,F:\正好是order5的上级目录
      

  4.   

    楼上正解。因为后来改用JBuilder,不再出现上述问题,故一直未再关注。个人觉得,可能的话都用JBuilder或者Eclipse(没试过,据说很好)来编译,避免麻烦。Jcreator(V3.5)似乎还是不太适合Java初学者。