2015-05-06 2 views
0

Итак, я все еще ноб на Java, и я экспериментирую с несколькими вещами.Использование JAR-файлов

Недавно я создал файл .jar для своего класса, используя jar cvf <name>.jar <source files>, а затем использовал этот jar для компиляции моего класса драйвера (javac -cp <name>.jar Driver.java), но как я могу запустить этот класс с помощью jar?

Я попытался следующие 2 команды:
java Driver и,
java -cp <name>.jar Driver.

Первый дает мне NoClassDefFoundError для используемого класса, тогда как последний просто дал мне ошибку в одной строке.

Error: Could not find or load man class Driver

Что я делаю неправильно? Возможно ли, что я запутаю это для чего-то еще?
Я пытаюсь сделать все, что в моих силах, без использования какой-либо IDE.

+0

В классе вашего драйвера содержится основной метод? – Kayaman

+0

@Kayaman да. Я также инициализировал все правильно. – Spedwards

+0

Драйвер в пакете? – dwursteisen

ответ

2

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

java -classpath "<name.jar>;classes" Driver 

EDIT (благодаря Kayaman): Если вы работаете в команде с Linux/Unix вы должны использовать «:» как разделитель (в Windows работает «;»). «classes» - это путь к папке, содержащей вывод компилятора.

0

При создании исполняемого jar (jar, который содержит класс с основным методом) вы должны указать jar, который является mainClass для выполнения, и для этого вы должны создать файл под названием Manifest.mf.

Файл должен содержать следующее:

Main-Class: MyPackage.MyClass 

И при создании баночки вы должны использовать это, чтобы включить свой манифест:

jar cfm MyJar.jar Manifest.mf MyPackage/*.class 

И для запуска вашей баночки:

java -jar MyJar.jar 
+0

Не исполняемый фляга. Вероятно, следовало бы уточнить. – Spedwards

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