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