JAR выходит после завершения первого урока - PullRequest
1 голос
/ 23 ноября 2010

У меня есть два класса. Я создал файл 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 ]

1 голос
/ 23 ноября 2010

Единственный код, написанный в 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);
}

}

1 голос
/ 23 ноября 2010

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

Полагаю, было бы полезно узнать, что вы имеете в виду под "выходом".

0 голосов
/ 23 ноября 2010

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

Попробуйте обе команды вместо jar ...:

jar cfe practice.jar class1 class1.class class2.class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...