2010-11-22 4 views
1

У меня есть два класса. Я создал файл JAR с помощью:JAR выходит после завершения первого класса

jar cvf practice.jar class1.class class2.class 

Затем я установил начальную точку входа:

jar cfe practice.jar class1 class1.class 

Когда я исполняю файл JAR, это работает отлично до того момента, когда происходит переход к следующему класс, то есть class2 hey = new class2(); Затем он выходит. Но хотите продолжить следующий класс.

Он должен перейти в класс2.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

Вы можете включать в себя часть кода из class1 и class2? – thattolleyguy 2010-11-22 21:19:40

+0

Пожалуйста, покажите исходный код и любое сообщение об ошибке, которое вы получаете. – 2010-11-22 21:20:13

+2

Ради сообщества вы должны назвать название что-то значимое – 2010-11-22 21:21:08

ответ

0

Я попробовал ваш пример, и я получаю NoClassDefFound для class2 после нажатия кнопки «OK "в первом окне. Это связано с тем, что class2.class нет в файле practice.jar.

Попробуйте следующие вместо обоих ваших jar ... команд:

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

Вы делаете новый экземпляр объекта class2, но если нет ничего в конструктор ничего не произойдет, я думаю, что у вас есть код в другом методе в class2, что вам нужно позвонить?

Я думаю, было бы полезно узнать, что вы подразумеваете под «выходами».

1

Единственный код, написанный в классе2, находится в основном методе, этот метод не выполняется при создании экземпляра этого класса. Если вы либо переместить код в конструктор или вызовите главный метод:

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); 
} 

}

Смежные вопросы