logo

Fără atribut Manifest principal

Într-un proiect Java, fiecare fișier jar executabil conține o metodă principală. De obicei, este plasat la punctul de pornire al aplicației. Pentru a executa o metodă principală printr-un fișier jar cu auto-execuție, trebuie să avem un fișier manifest adecvat și să-l împachetăm cu proiectul nostru în locația potrivită. Aceste fișiere au un atribut manifest principal care este utilizat pentru a defini calea către clasa care are metoda principală.

Uneori, avem un borcan auto-executabil, iar când încercăm să executăm proiectul, va arunca următorul mesaj de eroare:

 Unable to execute jar- file: 'no main manifest attribute.' 

Mesajul de eroare de mai sus este aruncat din cauza unei intrări lipsă a Main-Class în fișierul MANIFEST.MF.

Puteți întâmpina această problemă în orice configurație Java proiect. Să discutăm soluțiile sale:

Soluţie:

Să înțelegem soluțiile sale în diferite proiecte:

Maven

În Maven Proiect, această problemă se poate întâlni din cauza intrării lipsă a Main-Class în fișierul MANIFEST.MF. Pentru a depăși această problemă, o putem defini în fișierul nostru pom.xml punând manual a maven-jar-plugin în pom.xml.

 org.apache.maven.plugins maven-jar-plugin 3.1.0 com.javatpoint.AppMain 

În codul de mai sus, com.javatpoint.AppMain este numele nostru complet calificat al Main-Class. Trebuie să înlocuiți numele complet calificat conform căii de clasă. Pentru a copia numele complet calificat, faceți clic dreapta pe pachetul care conține clasa principală și selectați Copiați numele complet calificat .

Gradle

Dacă primiți această eroare în proiectul dvs. Gradle, puteți rezolva aceasta punând următoarele intrări în construi.gradle fişier:

 plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'com.javatpoint.AppMain' ) } } 

Aplicație Spring Boot

Uneori, această eroare poate fi întâlnită la dvs Cizme de primăvară proiect. Este ușor să rezolvați această eroare în proiectul Spring Boot. Pentru a remedia această eroare în proiectul SB, puneți dependența maven-plugin sub eticheta din fișierul pom.xml.

 org.springframework.boot spring-boot-maven-plugin 4.0.1 

Cauza principală a erorii de atribut No Main Manifest

„Fără eroare manifestă principală” este de obicei cauzată dacă ați greșit fișierul MANIFEST.MF aflat în folderul META-INF. În mod implicit, are următoarea intrare:

 Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse 

Unde,

Manifest-Versiune este versiunea fișierului Manifest.

Construit de este numele computerului tău.

Build-Jdk este versiunea JDK instalată în mașina dvs.

Creat de este numele pluginului folosit în IDE.

Când rulăm proiectul, acesta va căuta Main-Class în fișierul MANIFEST.MF. Va arunca mesajul de eroare „Nu se poate executa fișierul jar” dacă nu găsește intrarea. Când rulăm soluțiile de mai sus, intrarea clasei va fi actualizată automat în fișierul Manifest al proiectului, după cum urmează:

 Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse Main-Class: com.javatpoint.AppMain