2015-04-22 2 views
2

У меня есть рабочий .class файл, но когда я используюКак сделать .jar из .class

jar cvf MyJar.jar *.class 

Я полученный myJar.jar не может быть открыт:

«The Java JAR файл «MyJar.jar» не может быть запущен. Проверьте наличие ошибок .

Спасибо за помощь.

========== EDIT:

> build 
    > MyClass.class 
    > MyClassCanvas.class 
    > MyClassFrame.class 
    > manifest.txt 

manifest.txt:

Main-Class: MyClass 
+0

Как вы пытаетесь «открыть» банку? Вы проверяли консоль на наличие сообщений об ошибках? – copeg

+0

Тогда это неправильно, потому что такого класса нет. По крайней мере, я не вижу никакого ** класса AtomViewer.class ** – Lukino

+0

@ Лукино жаль, что я имел в виду функции MyClass.class по желанию. – Hong

ответ

1

Как уже упоминалось в комментариях, вам необходимо добавить манифест вашей баночке. Назовите это manifest.txt и должны иметь по крайней мере, следующие строки:

Main-Class: YourClass 
# remove comment, but leave empty line 

YourClass такое же имя, что и файл YourClass.class без расширения и что класс должен иметь основной метод (государственной статической силы основных (String [] арг).

Если у вас есть вы главный класс в подкаталоги, вы должны использовать их (они рассматриваются как пакеты. например, если у вас есть каталог COM/Foo/YourClass.class

Main-Class: com.foo.YourClass 
# remove comment, but leave empty line 

Затем упаковать его с JAR:

jar cvfm MyJarName.jar manifest.txt *.class 

Для более см Manifest

EDIT:

я рекомендую использовать по крайней мере, Maven. Сделайте жизнь проще, если у вас есть другие зависимости или около того. Затем вы добавляете и настраиваете maven-jar-plugin, и это много для вас.

EDIT:

Кроме того, вам не нужно использовать файл манифеста, но вы можете достичь всего этого с помощью следующей команды

jar cvfe MyJarName.jar MyClass *.class 

где е - указать точку входа - MyClass в вашем случае

+0

Я добавил файл manifest.txt, и я получаю такие вещи, как: добавлено манифестное добавление: MyClass.class (in = 1605) (out = 849) (отклонено на 47%), добавив: MyClassCanvas.class (in = 610) (out = 369) (отклонено на 39%), добавив: MyClassFrame $ AlternateBasis.class (in = 2532) (out = 1463) (отклонено на 42%) ... .. Результирующий файл .jar все еще не может быть запущен. – Hong

+0

Вы использовали ** tar ** или ** jar **? См. Ссылку в конце моего сообщения и прочитайте эту страницу. – Lukino

+0

Спасибо. Я использовал банку и выполнил инструкцию, которую вы опубликовали. Все еще не удается создать исполняемую банку. – Hong

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