logo

Geen hoofdkenmerk

In een Java-project bevat elk uitvoerbaar jar-bestand een hoofdmethode. Meestal wordt het bij het startpunt van de toepassing geplaatst. Om een ​​hoofdmethode uit te voeren met een zelfuitvoerend jar-bestand, moeten we een correct manifestbestand hebben en dit bij ons project op de juiste locatie inpakken. Deze bestanden hebben een hoofdmanifestattribuut dat wordt gebruikt om het pad naar de klasse met de hoofdmethode te definiëren.

Soms hebben we een zelfuitvoerbare jar en wanneer we het project proberen uit te voeren, wordt de volgende foutmelding weergegeven:

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

Het bovenstaande foutbericht wordt gegenereerd vanwege een ontbrekende vermelding van Main-Class in het MANIFEST.MF-bestand.

U kunt dit probleem tegenkomen bij elke configuratie Java project. Laten we de oplossingen bespreken:

Oplossing:

Laten we de oplossingen ervan in verschillende projecten begrijpen:

Maven

In Maven Project kan dit probleem optreden vanwege de ontbrekende vermelding van Main-Class in het bestand MANIFEST.MF. Om dit probleem op te lossen, kunnen we het in ons pom.xml-bestand definiëren door handmatig een maven-jar-plug-in in pom.xml.

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

In de bovenstaande code is com.javatpoint.AppMain onze volledig gekwalificeerde naam van de Main-Class. U moet de volledig gekwalificeerde naam vervangen volgens uw klassenpad. Om de volledig gekwalificeerde naam te kopiëren, klikt u met de rechtermuisknop op het pakket dat de hoofdklasse bevat en selecteert u Kopieer de volledig gekwalificeerde naam .

Gradle

Als u deze foutmelding krijgt in uw Gradle-project, kunt u dit oplossen door de volgende gegevens in uw bouw.gradle bestand:

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

Spring Boot-applicatie

Soms kan deze fout optreden in uw Lente laars project. Deze fout is eenvoudig op te lossen in het Spring Boot-project. Om deze fout in het SB-project op te lossen, plaatst u de afhankelijkheid van de maven-plug-in onder de tag in het bestand pom.xml.

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

Hoofdoorzaak van de fout 'Geen hoofdkenmerkfout'

De 'geen hoofdmanifestfout' wordt meestal veroorzaakt als u in het MANIFEST.MF-bestand in de map META-INF hebt geknoeid. Standaard heeft het de volgende vermelding:

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

Waar,

Manifest-versie is de versie van het manifestbestand.

Gebouwd door is uw pc-naam.

Bouw-Jdk is de JDK-versie die op uw machine is geïnstalleerd.

Gemaakt door is de plug-innaam die in IDE wordt gebruikt.

Wanneer we het project uitvoeren, zoekt het naar de Main-Class in het bestand MANIFEST.MF. Het zal de foutmelding 'Kan jar-bestand niet uitvoeren' genereren als het de invoer niet kan vinden. Wanneer we de bovenstaande oplossingen uitvoeren, wordt de klasse-invoer automatisch als volgt bijgewerkt in het Manifest-bestand van het project:

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