logo

Ingen hovedmanifestegenskab

I et Java-projekt indeholder hver eksekverbare jar-fil en hovedmetode. Normalt placeres den ved ansøgningens startpunkt. For at udføre en hovedmetode ved hjælp af en selvudførende jar-fil, skal vi have en ordentlig manifestfil og indpakke den med vores projekt på den rigtige placering. Disse filer har en hovedmanifestattribut, der bruges til at definere stien til klassen med hovedmetoden.

Nogle gange har vi en selv-eksekverbar jar, og når vi forsøger at udføre projektet, vil den vise følgende fejlmeddelelse:

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

Ovenstående fejlmeddelelse vises på grund af manglende indtastning af Main-Class i filen MANIFEST.MF.

Du kan støde på dette problem i enhver konfigurationsbaseret Java projekt. Lad os diskutere dets løsninger:

Løsning:

Lad os forstå dets løsninger i forskellige projekter:

Maven

I Maven Projekt, dette problem kan støde på på grund af den manglende indtastning af Main-Class i filen MANIFEST.MF. For at overvinde dette problem kan vi definere det i vores pom.xml-fil ved manuelt at sætte en maven-jar-plugin i pom.xml.

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

I ovenstående kode er com.javatpoint.AppMain vores fuldt kvalificerede navn på Main-Class. Du skal erstatte det fuldt kvalificerede navn i henhold til din klassesti. For at kopiere det fuldt kvalificerede navn skal du højreklikke på pakken, der indeholder hovedklassen og vælge Kopiér fuldt kvalificeret navn .

Gradle

Hvis du får denne fejl i dit Gradle-projekt, kan du løse dette ved at indsætte følgende indtastninger i din bygge.gradle fil:

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

Spring Boot Application

Nogle gange kan denne fejl opstå i din Fjederstøvle projekt. Det er nemt at løse denne fejl i Spring Boot-projektet. For at rette denne fejl i SB-projektet skal du sætte maven-plugin-afhængigheden under tagget i pom.xml-filen.

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

Grundårsag til attributfejlen No Main Manifest

'Ingen hovedmanifestfejl' er normalt forårsaget, hvis du rodede i MANIFEST.MF-filen, der er placeret under META-INF-mappen. Som standard har den følgende indgang:

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

Hvor,

Manifest-version er versionen af ​​Manifest-filen.

Bygget af er dit pc-navn.

Byg-Jdk er JDK-versionen installeret på din maskine.

Lavet af er plugin-navnet, der bruges i IDE.

Når vi kører projektet, vil det lede efter Main-Class i filen MANIFEST.MF. Den sender fejlmeddelelsen 'Kan ikke udføre jar-fil', hvis den ikke finder indgangen. Når vi kører ovenstående løsninger, vil klasseindgangen automatisk blive opdateret i projektets Manifest-fil som følger:

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