Java: как импортировать файл JAR из командной строки - PullRequest
72 голосов
/ 03 июня 2009

Я пытаюсь вызвать класс (основной метод) из командной строки (Windows) с помощью Java.
Класс импортирует другие классы (другие банки).

Я всегда получаю «исключение класса не найдено» из класса, который импортирует моя основная программа.

Вот что я попробовал:

  • Добавить CLASSPATH env. var с путем, в котором находится ссылочная библиотека (не работает)

  • Я пытался использовать все эти разные параметры при вызове "java -jar myjar.jar" из командной строки: "-classpath lib/", "-classpath ./lib/", "-classpath lib", "-cp lib/*", "-cp lib/\* "," -classpath lib/referenced-class.jar "," -classpath ./lib/referenced-class.jar "(в lib находится указанный файл jar)

  • Я попытался упаковать всю указанную банку в мою банку, где находится мой основной класс ...

  • И со всем этим я также попытался указать классы внутри файла Manifest с помощью: Class-path referenced-jar.jar и я тоже попробовал Class-path lib/referenced-jar.jar

Ответы [ 4 ]

116 голосов
/ 03 июня 2009

Вы можете запустить его без аргумента командной строки -jar, если вам известно имя основного класса, который вы хотите запустить:

java -classpath .;myjar.jar;lib/referenced-class.jar my.package.MainClass

Если вы, вероятно, используете Linux, вы должны использовать «:» вместо «;» в пути к классам.

59 голосов
/ 03 июня 2009

Если вы используете JAR-файл с java -jar, аргумент -classpath игнорируется . Вам нужно установить classpath в файле манифеста вашего фляги, например:

Class-Path: jar1-name jar2-name directory-name/jar3-name

См. Учебные руководства по Java: Добавление классов в путь к классам JAR-файла .

Редактировать: Я вижу, вы уже пытались установить путь к классу в манифесте, но вы уверены, что использовали правильный синтаксис? Если вы пропустите ':' после "Class-Path", как вы показали, оно не будет работать.

13 голосов
/ 03 июня 2009

1001 * попробовать *

java -cp "your_jar.jar:lib/referenced_jar.jar" com.your.main.Main

Если вы работаете в Windows, вы должны использовать ; вместо :

3 голосов
/ 03 июня 2009

вы можете попытаться экспортировать как «Runnable jar» в затмении. У меня также есть проблемы, когда я экспортирую как "jar", но у меня никогда не было проблем, когда я экспортирую как "Runnable jar".

...