1

从 jar.the java.lang.Noclassdeffound 运行项目时发生错误。

例如:1 类包含主要方法:

包 p;

导入 p1.MyClass1;

导入 p2.MyClass2;

公共类TestClass {

public int i;
public Object obj;  //Line 5

public void aMethod(){

// 对象 obj=null; //第 7 行

    if(i==0){
        obj=new MyClass1();
        System.out.println("if block: p1.MyClass1");
    }else{
        obj=new MyClass2();
        System.out.println("else block: p2.MyClass2");
    }
}

public static void main(String [] args){
    TestClass t=new TestClass();
    t.aMethod();
}

}

2:p1包的MyClass1:

包 p1;

公共类 MyClass1 {

public MyClass1() {}

}

3- p2 包的 MyClass2:

包p2;

公共类 MyClass2 {

public MyClass2() {}

}


在上面的示例中,3 个类是 TestClass、MyClass1 和 MyClass2。当我在构建之后运行上述项目(TestClass 是我项目的主类)时,使用 jar 并手动删除 p2 包它运行良好。但是在 TestClass 中的 chenge 对全局变量 public Object obj 进行注释(第 5 行)并在 TestClass 的方法 aMethod 中删除注释局部变量 Object obj(第 7 行)。然后我在手动删除 p2 包后从 jar 构建并运行项目,控制台在线程“main”java.lang.NoClassDefFoundError: p2/MyClass2 中显示异常

at run time no need of p2 package but making the variable "obj" in class TestClass

从全局到本地(在方法 aMethod() 中)发生异常。 请对我的问题进行排序,为什么会出现此错误。

4

0 回答 0