logo

Ingen hovedmanifestattributt

I et Java-prosjekt inneholder hver kjørbare jar-fil en hovedmetode. Vanligvis plasseres den ved startpunktet for søknaden. For å utføre en hovedmetode med en selvutførende jar-fil, må vi ha en skikkelig manifestfil og pakke den inn med prosjektet vårt på riktig sted. Disse filene har en hovedmanifestattributt som brukes til å definere banen til klassen som har hovedmetoden.

Noen ganger har vi en selvkjørbar krukke, og når vi prøver å utføre prosjektet, vil den gi følgende feilmelding:

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

Feilmeldingen ovenfor vises på grunn av manglende oppføring av Main-Class i MANIFEST.MF-filen.

Du kan støte på dette problemet i hvilken som helst konfigurasjonsbasert Java prosjekt. La oss diskutere løsningene:

Løsning:

La oss forstå løsningene i forskjellige prosjekter:

Maven

I Maven Prosjekt, dette problemet kan oppstå på grunn av manglende oppføring av Main-Class i MANIFEST.MF-filen. For å overvinne dette problemet kan vi definere det i pom.xml-filen vår ved å manuelt sette en maven-jar-plugin i pom.xml.

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

I koden ovenfor er com.javatpoint.AppMain vårt fullt kvalifiserte navn på hovedklassen. Du må erstatte det fullstendige navnet i henhold til klassebanen din. For å kopiere det fullstendige navnet, høyreklikk på pakken som inneholder hovedklassen og velg Kopier fullt kvalifisert navn .

Gradle

Hvis du får denne feilen i Gradle-prosjektet ditt, kan du løse dette ved å legge inn følgende oppføringer i din bygge.gradle fil:

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

Spring Boot Application

Noen ganger kan denne feilen oppstå i din Fjærstøvel prosjekt. Det er enkelt å løse denne feilen i Spring Boot-prosjektet. For å fikse denne feilen i SB-prosjektet, sett maven-plugin-avhengigheten under koden i pom.xml-filen.

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

Hovedårsaken til attributtfeilen Ingen hovedmanifest

'ingen hovedmanifestfeil' er vanligvis forårsaket hvis du rotet i MANIFEST.MF-filen som ligger under META-INF-mappen. Som standard har den følgende oppføring:

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

Hvor,

Manifest-versjon er versjonen av Manifest-filen.

Bygd av er PC-navnet ditt.

Bygg-Jdk er JDK-versjonen installert på maskinen din.

Laget av er pluginnavnet som brukes i IDE.

Når vi kjører prosjektet, vil det se etter hovedklassen i filen MANIFEST.MF. Den vil gi feilmeldingen 'Kan ikke utføre jar-filen' hvis den ikke finner oppføringen. Når vi kjører løsningene ovenfor, vil klasseoppføringen automatisk bli oppdatert i prosjektets 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