我有两节课。我使用:
创建了一个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);
}
}
答案 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