Как запустить код со сторонним JAR-файлом? - PullRequest
1 голос
/ 19 марта 2012

Я пытаюсь сделать что-то действительно простое, но я не знаю, как это сделать. У меня есть сторонний файл JAR, который имеет определение класса. У меня есть класс с основным методом. Основной класс использует класс в файле jar. Я скомпилировал с этой опцией команды. Не было жалобы на ошибку.

javac -classpath party.jar mymain.java

Когда я попытался запустить программу, я получил следующую ошибку:

java -jar party.jar myMain

Exception in thread "main" java.lang.NullPointerException at sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:399)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:463)

Мне кажется, мне нужно добавить опцию Main-Class в файл jar. Но я не могу изменить файл party.jar, потому что он принадлежит третьей стороне. Что мне нужно сделать, чтобы запустить мою программу? Нужно ли мне создавать свой собственный JAR-файл? Если да, что мне нужно включить туда?

Это точные команды и вывод

myjar] $ javac -cp party.jar mymain.java

myjar] $ java -cp party.jar mymain

Ошибка: не удалось найти или загрузить основной класс mymain

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Вместо этого вы должны попробовать java -cp party.jar myMain.Используя -jar, вы указываете JVM искать ваш класс в указанном jar-файле.Но party.jar не включает ваш класс myMain, если я правильно понял.Поэтому вы просто должны сообщить Java, что хотите использовать классы из party.jar с помощью опции -cp (как вы это делали для компиляции), но возьмите класс myMain из каталога, в котором вы находитесь.

0 голосов
/ 02 июля 2018

Вы должны попробовать java -cp party.jar; вместо этого. Если вы используете несколько файлов jar, ставьте точку с запятой после каждого. Не забудьте ставить пробел после последней точки с запятой непосредственно перед именем основного класса (здесь myMain). Надеюсь, это работает.

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