第一堂课完成后,JAR退出

时间:2010-11-22 21:17:58

标签: java jar

我有两节课。我使用:

创建了一个JAR文件
jar cvf practice.jar class1.class class2.class

然后我设置了起始入口点:

jar cfe practice.jar class1 class1.class

当我执行JAR文件时,它可以正常工作,直到转换到下一个类,即class2 hey = new class2();然后它退出。但是想继续下一堂课。

它应该转到class2.class。因为它在那个对象中说。显然,它没有。

public class class1 {
    public static void main(String[] args){
        JOptionPane.showMessageDialog(null, "This is class 1", "Order",JOptionPane.PLAIN_MESSAGE);
        class2 hey = new class2();
    }
}

public class class2 {

    public class2() {
        JOptionPane.showMessageDialog(null, "This is class 2", "Order",JOptionPane.PLAIN_MESSAGE);
    }
}

3 个答案:

答案 0 :(得分:1)

你正在创建一个对象class2的新实例,但是如果构造函数中没有任何东西会发生什么,我的猜测是你在class2中的另一个方法中有代码需要调用吗?

我想通过“退出”来了解你的意思也很有帮助。

答案 1 :(得分:1)

在class2中编写的唯一代码在main方法中,在创建该类的实例时不执行此方法。如果您将代码移动到构造函数或调用main方法:

public class Class1 {

public Class1() {
    JOptionPane.showMessageDialog(null, "This is class 1", "Order",
            JOptionPane.PLAIN_MESSAGE);
}
public static void main(String[] args) {
    Class1 c1 = new Class1();
    Class2 c2 = new Class2();
}

}

public class Class2 {
public Class2() {
    JOptionPane.showMessageDialog(null, "This is class 2", "Order",JOptionPane.PLAIN_MESSAGE);
}

}

答案 2 :(得分:0)

我尝试了你的例子,在第一个窗口中按“OK”后我得到class2的NoClassDefFound。这是因为class2.class文件中没有practice.jar

请尝试以下操作,而不是同时使用jar ...命令:

jar cfe practice.jar class1 class1.class class2.class