#jar #executable
#jar #исполняемый
Вопрос:
У меня есть файл Jar с тремя классами P, Q, R, все три содержат статическую основную функцию… Я хочу иметь несколько записей в файл Jar при запуске из командной строки
имя файла jar, например: Main_classes.jar и в файле манифеста установлен основной класс class «P»
команда, которую я пробовал
java -cp Main_Classes.jar Вопрос
не дает мне исключения из найденного класса…
Комментарии:
1. В какой операционной системе находится jar-файл в том же каталоге, из которого вы выполняете команду Java? Не найден ли класс, относящийся к одному из ваших классов?
2. Это должно было сработать. Пожалуйста, опубликуйте полную трассировку стека.
3. Все ли классы находятся в корневом пакете?
4. Операционная система — Windows .. все 3 класса находятся в пакете «P1″…. пробовал с java -cp Main_Classes.jar P1.Q … это сработало!!
Ответ №1:
Решение, как показано ниже.
Содержимое файла манифеста при условии, что все три файла находятся в пакете myPackage :
Main-Class: myPackage.P
Генерация файла jar
javac -d . P.java Q.java R.java
jar -cvfm my.jar manifest.txt myPackage/*.class
Для запуска jar, который имеет свой собственный определенный main-class, как в файле манифеста
java -jar my.jar // Executes Class P
Для запуска jar с любым из классов Q или R, которые также имеют main
java -cp my.jar myPackage.Q //Executes class Q
java -cp my.jar myPackage.R //Executes class R
java -cp my.jar myPackage.P //Executes class P