Почему не удалось загрузить атрибут манифеста основного класса из файла JAR?



Я создал файл JAR таким образом jar cf jar-file input-files. Теперь я пытаюсь запустить его. Запуск его не работает (команда jre не найдена):



jre -cp app.jar MainClass


Это не работает:



java -jar main.jar


(не удалось загрузить атрибут манифеста основного класса из main.сосуд.)



узнал, что




для запуска приложения, упакованного в виде
JAR-файл (версия 1.2 -- требуется
Заголовок манифеста основного класса)




что такое "Заголовок манифеста основного класса"? Как создать и куда его положить?

838   11  

11 ответов:

Я не уверен, что верю вашим симптомам:

  • если jre команда не найдена, затем выполняется jre -cp app.jar должен дать ту же ошибку
  • просто добавив JAR file to the classpath не должен давать ошибку, которую вы видите

Я ожидаю, что вы увидите эту ошибку, если вы запустите:

java -jar app.jar

заголовок основного класса должен быть в манифесте для файла JAR - это метаданные о таких вещах, как другие обязательные библиотеки. Смотрите Sun documentation как создать соответствующий манифест. В основном вам нужно создать текстовый файл, который содержит такую строку:

Main-Class: MainClass

затем запустите

jar cfm app.jar manifest.txt *.class
  1. установить путь к классу и скомпилировать

    javac-classpath "C:\Program файлы\Java\jdk1.6. 0_ updateVersion \ tools.jar " yourApp.java

  2. создать манифест.txt

    основной класс: yourApp новая строка

  3. создать yourApp.банку

    jar cvf0m yourApp.jar manifest.формат txt yourApp.класс

  4. выполнить yourApp.банку

    java-jar yourApp.банку

вы можете работать с:

java -cp .;app.jar package.MainClass

это работает для меня, если нет манифеста в файле JAR.

Я получил эту ошибку, и это было, потому что у меня были аргументы в неправильном порядке:

правильно

java maui.main.Examples tagging -jar maui-1.0.jar 

неправильно

java -jar maui-1.0.jar maui.main.Examples tagging 

самый простой способ убедиться, что вы правильно создали запускаемый файл JAR с соответствующим файлом манифеста, - это использовать затмение чтобы построить его для вас. В вашем проекте Eclipse вы в основном просто выбираете Файл / Экспорт из меню и следуете подсказкам.

таким образом, вы можете быть уверены, что ваш файл JAR является правильным и будет знать, чтобы искать в другом месте, если есть еще проблема. Процесс полностью описан в часто задаваемые вопросы Как создать исполняемый файл JAR для автономной программы SWT?.

Я обнаружил, что у меня также была эта ошибка в NetBeans. Я надеюсь, что это полезно.

  1. убедитесь, что при переходе к конфигурации проекта вы устанавливаете основной класс, который вы собираетесь запустить.
  2. сделать сборку или чистую сборку
  3. поместите файл jar туда, где вы хотите, и попробуйте: java-jar "YourProject.банку" снова в командной строке.

Это была проблема, которую я получал, потому что у меня были другие "тестовые" программы, которые я использовал NetBeans и я должны были убедиться, что основной класс в части запуска конфигурации проекта был установлен правильно.

много благословений, Джон П

Я получал ту же ошибку, когда я бежал:
jar cvfm тест.баночный тест.Манифест класса.txt

что решило это было так:
jar cvfm тест.jar Manifest.тест txt.класс

мой манифест имеет точку входа, как указано в документах oracle (убедитесь, что в конце файла есть новый символ строки):
Основной Класс: Тест

попробовать

java -cp .:mail-1.4.1.jar JavaxMailHTML 

не нужно .

Я столкнулся с той же проблемой. Эта команда unix не может найти основной класс. Это связано с тем, что версии JDK во время выполнения и компиляции отличаются. Сделайте jar через eclipse после изменения версии компилятора java. Следующая ссылка помогла мне.

http://crunchify.com/exception-in-thread-main-java-lang-unsupportedclassversionerror-comcrunchifymain-unsupported-major-minor-version-51-0/

попробуйте запустить банку, созданную после этого шага а затем выполнить его

Если ваш путь к классу, полностью указан в манифесте, может быть, вам нужно последняя версия среды выполнения java. Моя проблема исправлена, когда я переустановил jre 8.

Если вы используете Eclipse, попробуйте ниже: 1. Щелкните правой кнопкой мыши на проекте - > выберите Экспорт 2. Выберите запускаемый файл Jar в поле выбор места назначения экспорта 3. Введите имя jar и выберите "требуется пакет ... "(второй переключатель) -> готово

надеюсь, что это помогает...!

Comments

    Ничего не найдено.