2009-06-03 2 views
72

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

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

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

  • Добавить CLASSPATH окр. вар с путем, где ссылочный Lib проживает (не работает)

  • я пытался со всеми этими различными параметрами при вызове «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

ответ

116

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

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

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

+0

woohoo, это сработало! Спасибо :) – 2009-06-03 17:29:45

+0

Я искал навсегда, чтобы понять это! – chotchki

+9

Чтобы быть ясным, банку необходимо явно указать путь к классам. Указание директории/lib неэффективно. – cmcginty

59

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

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

Смотрите обучающие программы Java: Adding Classes to the JAR File's Classpath.

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

+0

Да, я тоже это пробовал .. не работал для меня :( – 2009-06-03 17:26:04

+0

Вы видите мое редактирование? –

+0

Да, я пробовал с «:» также ... Я не знаю, почему использование манифеста для указания они вообще не работали.Я спросил коллег и перепроверял все с ними. – 2009-06-03 17:39:50

3

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

+0

Я не вижу опцию «Runnable jar» в окнах экспорта, просто файл JAR :( – 2009-06-03 17:26:41

+0

, какую версию затмения вы используете? У меня есть это в Ganymede .... screrenshot здесь: http://bufka.ath.cx/dslr/Eclipse-Export.png Но я не знаю, если это настройки по умолчанию или нет. – cupakob

13

попробовать

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

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

Смежные вопросы