Почему не удалось загрузить атрибут манифеста основного класса из файла JAR?
Я создал файл JAR таким образом jar cf jar-file input-files. Теперь я пытаюсь запустить его. Запуск его не работает (команда jre не найдена):
jre -cp app.jar MainClass
Это не работает:
java -jar main.jar
(не удалось загрузить атрибут манифеста основного класса из main.сосуд.)
узнал, что
для запуска приложения, упакованного в виде
JAR-файл (версия 1.2 -- требуется
Заголовок манифеста основного класса)
что такое "Заголовок манифеста основного класса"? Как создать и куда его положить?
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
установить путь к классу и скомпилировать
javac-classpath "C:\Program файлы\Java\jdk1.6. 0_ updateVersion \ tools.jar " yourApp.java
создать манифест.txt
основной класс: yourApp новая строка
создать yourApp.банку
jar cvf0m yourApp.jar manifest.формат txt yourApp.класс
выполнить 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. Я надеюсь, что это полезно.
- убедитесь, что при переходе к конфигурации проекта вы устанавливаете основной класс, который вы собираетесь запустить.
- сделать сборку или чистую сборку
- поместите файл jar туда, где вы хотите, и попробуйте: java-jar "YourProject.банку" снова в командной строке.
Это была проблема, которую я получал, потому что у меня были другие "тестовые" программы, которые я использовал NetBeans и я должны были убедиться, что основной класс в части запуска конфигурации проекта был установлен правильно.
много благословений, Джон П
Я получал ту же ошибку, когда я бежал:
jar cvfm тест.баночный тест.Манифест класса.txtчто решило это было так:
jar cvfm тест.jar Manifest.тест txt.классмой манифест имеет точку входа, как указано в документах oracle (убедитесь, что в конце файла есть новый символ строки):
Основной Класс: Тест
Я столкнулся с той же проблемой. Эта команда unix не может найти основной класс. Это связано с тем, что версии JDK во время выполнения и компиляции отличаются. Сделайте jar через eclipse после изменения версии компилятора java. Следующая ссылка помогла мне.
попробуйте запустить банку, созданную после этого шага а затем выполнить его
Если ваш путь к классу, полностью указан в манифесте, может быть, вам нужно последняя версия среды выполнения java. Моя проблема исправлена, когда я переустановил jre 8.
Если вы используете Eclipse, попробуйте ниже: 1. Щелкните правой кнопкой мыши на проекте - > выберите Экспорт 2. Выберите запускаемый файл Jar в поле выбор места назначения экспорта 3. Введите имя jar и выберите "требуется пакет ... "(второй переключатель) -> готово
надеюсь, что это помогает...!
Comments