Java: как импортировать файл jar из командной строки

Я пытаюсь вызвать класс (основной метод) из командной строки (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 - это место, где находится ссылка)

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

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

Ответ 1

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

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

Если вы используете linux, вы должны использовать ":" вместо ";" в пути к классам.

Ответ 2

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

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

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

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

Ответ 3

попробовать

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

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

Ответ 4

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