Как создать исполняемый файл .jar из файла класса? Я нашел довольно простые инструкции в Интернете, которые предполагают создание манифеста, а затем уплотнение его с терминала.Проблема создания рабочего .jar
Ужасный фактор, однако, заключается в том, что я запрограммировал эту вещь, файл класса - это собственный клиент ... он отлично работает в компиляторе, но я думаю, что это может каким-то образом изменить стандартный манифест? Моя программа выглядит примерно так:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class Schedule implements ActionListener {
public static void main(String[] args) {
Schedule gui = new Schedule();
}
public Schedule() {
public void actionPerformed(ActionEvent event) {
//...
}
//...
private class CheckboxListener implements ItemListener {
//...
}
}
}
После того как я составил этот Schedule программу, компилятор добавил кучу дополнительных классов в каталоге, поэтому в каталоге теперь есть Schedule.class, что называется Schedule$1.class
, Schedule$CheckboxListener.class
и пучок других классов (отформатирован аналогично Schedule$CheckboxListener.class
).
Простой вопрос, мне интересно, как должен выглядеть мой файл манифеста. Прямо сейчас у меня есть:
Main-Class: Schedule
но это не создает рабочий файл .jar. Что я делаю не так?
Когда вы говорите «работая», чего вы ожидали? Как вы вызываете JAR-файл и что он делает? Вы получаете сообщения об ошибках? – Gian
Когда я дважды щелкните Schedule.jar я получаю следующее сообщение об ошибке: Исключение в потоке «основной» java.lang.NoClassDefFoundError: Расписание $ CheckBoxListener \t в Перечне. (Schedule.java:49) \t в Schedule.main (Schedule.java:8) Вызванный: java.lang.ClassNotFoundException: График $ CheckboxListener \t в java.net.URLClassLoader $ 1.run (URLClassLoader.java: 202) \t на java.security.AccessController.doPrivileged (нативный метод) \t в java.net.URLClassLoader.findClass (URLClassLoader.java:190) \t в java.lang.ClassLoader.loadClass (ClassLoader.java:306) ... –
user2379931
Вы должны включить эти дополнительные классы, которые делает компилятор javac. $ Означает внутренний класс. – 2013-05-14 03:25:35