Почему ему не удалось загрузить атрибут манифеста основного класса из JAR файла?
Я создал JAR файл таким образом jar cf jar-file input-files
. Теперь я пытаюсь запустить его. Запуск его не работает (команда jre не найдена):
jre -cp app.jar MainClass
Это также не работает:
java -jar main.jar
(Не удалось загрузить атрибут манифеста Main-Class из main.jar).
Я также узнал, что
Чтобы запустить приложение, упакованное как Файл JAR (версия 1.2 - требуется Заголовок манифеста Main-Class)
Что такое заголовок манифеста Main-Class? Как создать его и где его поместить?
Ответы
Ответ 1
Я не уверен, что считаю ваши симптомы:
- Если команда
jre
не найдена, то запуск jre -cp app.jar
должен давать ту же ошибку
- Просто добавив файл JAR в путь к классам, вы не должны указывать на ошибку, которую видите.
Я ожидаю, что вы увидите эту ошибку, если вы запустите:
java -jar app.jar
Заголовок основного класса должен находиться в манифесте для файла JAR - это метаданные о вещах, подобных другим требуемым библиотекам. См. Документацию
Ответ 2
Ответ 3
Вы можете работать с:
java -cp .;app.jar package.MainClass
Он работает для меня, если в файле JAR нет манифеста.
Ответ 4
Я получил эту ошибку, и это было потому, что у меня были аргументы в неправильном порядке:
ПРАВИЛЬНОЕ
java maui.main.Examples tagging -jar maui-1.0.jar
НЕПРАВИЛЬНО
java -jar maui-1.0.jar maui.main.Examples tagging
Ответ 5
Взгляните на учебник Настройка точки входа приложения.
Ответ 6
Самый простой способ убедиться, что вы создали исполняемый JAR файл правильно, с соответствующим файлом манифеста, должен использовать Eclipse построить его для вас. В своем проекте Eclipse вы просто просто выберите "Файл/Экспорт" из меню и следуйте инструкциям.
Таким образом, вы можете быть уверены, что ваш JAR файл верен и будет знать, что искать в другом месте, если есть проблема. Процесс описан полностью в FAQ Как создать исполняемый JAR файл для отдельной SWT-программы?.
Ответ 7
Я обнаружил, что у меня также была ошибка в NetBeans.
Я надеюсь, что следующее будет полезно.
- Убедитесь, что при переходе к Project Configuration вы устанавливаете основной класс, который вы собираетесь использовать.
- Сделайте сборку или чистую сборку
- Поместите файл jar, где хотите, и попробуйте: java -jar "YourProject.jar" снова в командной строке.
Это была проблема, которую я получал, потому что у меня были другие "тестовые" программы, которые я использовал в NetBeans, и мне нужно было убедиться, что основной класс в разделе "Выполнение" конфигурации проекта был установлен правильно.
много благословений,
John P
Ответ 8
Я получал ту же ошибку, когда я запускал:
jar cvfm test.jar Test.class Manifest.txt
Что это было:
jar cvfm test.jar Manifest.txt Test.class
Мой манифест имеет точку входа, указанную в документах oracle (убедитесь, что в конце файла есть новый символ строки):
Основной класс: тест
Ответ 9
Try
java -cp .:mail-1.4.1.jar JavaxMailHTML
не нужно иметь manifest
файл.
Ответ 10
Я столкнулся с той же проблемой. Эта команда unix не может найти основной класс. Это связано с тем, что версии JDK времени выполнения и времени компиляции различны. Сделайте jar через eclipse после изменения версии java-компилятора. Мне помогла следующая ссылка.
http://crunchify.com/exception-in-thread-main-java-lang-unsupportedclassversionerror-comcrunchifymain-unsupported-major-minor-version-51-0/
Попробуйте запустить банку, созданную после этого шага, а затем выполните ее
Ответ 11
Если ваш путь класса полностью указан в манифесте,
возможно, вам нужна последняя версия среды выполнения Java.
Моя проблема исправлена, когда я переустановил jre 8.
Ответ 12
Если вы используете eclipse, попробуйте сделать следующее:
1. Щелкните правой кнопкой мыши по проекту → выберите Экспорт
2. Выберите файл Runnable Jar в списке выбора экспорта
3. Введите имя баннера и выберите "Требуется пакет..." (вторая кнопка) → Готово
Надеюсь, это поможет...!