线程中的异常" main" java.lang.NoClassDefFoundError:

时间:2014-06-06 17:43:23

标签: java

package p1;
public class test_package{
public void show(){
System.out.println("package1");
}
public static void main(String args[]){
test_package t=new test_package();
t.show();
}
}

这是第一个已编译的类,包保存在D:目录中...运行良好... 现在...

package p2;
import p1.test_package;
public class test_package2{
public void show(){
System.out.println("package2 in c:");
}
public static void main(String args[]){
test_package2 T=new test_package2();
test_package T1=new test_package();
T.show();
T1.show();
}
} 

这是导入第一个类的另一个类,它保存在C:目录中... 我使用cmd命令

设置了时间路径
set classpath=D:

并从C:using命令编译它     javac -d C:test_package2.java

当我通过C:

的命令运行它时
java p2.test_package2

它正在抛出错误

 exception in thread "main" java.lang.NoClassDefFoundError

但.class文件位于D:drive中的p1包中..... 如果有人有解决方案,请帮助我。

1 个答案:

答案 0 :(得分:0)

这是因为JVM无法在test_package2的class_path中找到test_package,它是D:。将test_package添加到test_package2的构建路径中。在eclipse中,您可以通过右键单击test_package2>来完成此操作。构建路径>配置构建路径>添加外部类文件夹(或者您也可以压缩test_package并将其用作外部库)。现在将其导入test_package2。它应该运行。