требуется многократный ввод java jar-файла из командной строки

#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