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".