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包中..... 如果有人有解决方案,请帮助我。
答案 0 :(得分:0)
这是因为JVM无法在test_package2的class_path中找到test_package,它是D:。将test_package添加到test_package2的构建路径中。在eclipse中,您可以通过右键单击test_package2>来完成此操作。构建路径>配置构建路径>添加外部类文件夹(或者您也可以压缩test_package并将其用作外部库)。现在将其导入test_package2。它应该运行。