У проекті Java кожен виконуваний файл jar містить основний метод. Зазвичай він розміщується в початковій точці програми. Щоб виконати основний метод за допомогою самовиконуваного jar-файлу, ми повинні мати відповідний файл маніфесту та обернути його нашим проектом у належному місці. Ці файли мають атрибут main manifest, який використовується для визначення шляху до класу з основним методом.
Іноді у нас є самовиконуваний jar, і коли ми намагаємося виконати проект, він видасть таке повідомлення про помилку:
Unable to execute jar- file: 'no main manifest attribute.'
Наведене вище повідомлення про помилку видається через відсутність запису основного класу у файлі MANIFEST.MF.
Ви можете зіткнутися з цією проблемою в будь-якій конфігурації Java демонструвати. Давайте обговоримо його рішення:
рішення:
Давайте розберемося з його рішеннями в різних проектах:
Мейвен
в Мейвен Project, ця проблема може виникнути через відсутність запису Main-Class у файлі MANIFEST.MF. Щоб подолати цю проблему, ми можемо визначити її в нашому файлі pom.xml, вручну вставивши maven-jar-плагін у pom.xml.
org.apache.maven.plugins maven-jar-plugin 3.1.0 com.javatpoint.AppMain
У наведеному вище коді com.javatpoint.AppMain — це наша повна назва основного класу. Ви повинні замінити повне ім’я відповідно до вашого шляху до класів. Щоб скопіювати повне ім’я, клацніть правою кнопкою миші на пакеті, який містить основний клас, і виберіть Скопіюйте повну назву .
Gradle
Якщо ви отримуєте цю помилку у своєму проекті Gradle, ви можете вирішити це, додавши наступні записи у свій build.gradle файл:
plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'com.javatpoint.AppMain' ) } }
Додаток Spring Boot
Іноді ця помилка може виникнути у вашому Весняний черевик демонструвати. Виправити цю помилку в проекті Spring Boot легко. Щоб виправити цю помилку в проекті SB, розмістіть залежність maven-plugin під тегом у файлі pom.xml.
org.springframework.boot spring-boot-maven-plugin 4.0.1
Основна причина помилки атрибута No Main Manifest
Помилка «немає головного маніфесту» зазвичай виникає, якщо ви зіпсували файл MANIFEST.MF, який знаходиться в папці META-INF. За замовчуванням він має такий запис:
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse
Де,
Версія маніфесту це версія файлу маніфесту.
Побудований це ім'я вашого ПК.
Build-Jdk це версія JDK, встановлена на вашій машині.
Створений це назва плагіна, що використовується в IDE.
Коли ми запускаємо проект, він шукатиме основний клас у файлі MANIFEST.MF. Він видасть повідомлення про помилку «Неможливо виконати jar-файл», якщо не знайде запис. Коли ми запускаємо наведені вище рішення, запис класу буде автоматично оновлено у файлі маніфесту проекту таким чином:
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse Main-Class: com.javatpoint.AppMain