logo

Ei päämääritettä

Java-projektissa jokainen suoritettava jar-tiedosto sisältää päämenetelmän. Yleensä se sijoitetaan sovelluksen aloituspisteeseen. Suorittaaksemme päämenetelmän itsesuorittavalla jar-tiedostolla, meillä on oltava oikea manifestitiedosto ja käärittävä se projektiimme oikeaan paikkaan. Näillä tiedostoilla on pääluetteloattribuutti, jota käytetään määrittämään polku luokkaan, jolla on päämenetelmä.

Joskus meillä on itsesuoritettava jar, ja kun yritämme suorittaa projektin, se heittää seuraavan virheilmoituksen:

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

Yllä oleva virhesanoma ilmestyy, koska MANIFEST.MF-tiedostosta puuttuu Main-Class-merkintä.

Saatat kohdata tämän ongelman missä tahansa kokoonpanopohjaisessa käytössä Java hanke. Keskustellaan sen ratkaisuista:

Ratkaisu:

Ymmärretään sen ratkaisut eri projekteissa:

Maven

Sisään Maven Projekti, tämä ongelma saattaa ilmetä, koska MANIFEST.MF-tiedostossa puuttuu Main-Class-merkintä. Tämän ongelman ratkaisemiseksi voimme määrittää sen pom.xml-tiedostoomme lisäämällä manuaalisesti a maven-jar-plugin pom.xml:ssä.

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

Yllä olevassa koodissa com.javatpoint.AppMain on täysin hyväksytty Main-Class-nimemme. Sinun on korvattava täydellinen nimi luokkapolun mukaan. Jos haluat kopioida täydellisen nimen, napsauta hiiren kakkospainikkeella pakettia, joka sisältää pääluokan ja valitse Kopioi täydellinen nimi .

Gradle

Jos saat tämän virheen Gradle-projektissasi, voit ratkaista tämän lisäämällä seuraavat merkinnät omaan build.gradle tiedosto:

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

Spring Boot -sovellus

Joskus tämä virhe voi kohdata sinun Kevät Boot hanke. Tämä virhe on helppo ratkaista Spring Boot -projektissa. Korjaa tämä virhe SB-projektissa asettamalla maven-plugin-riippuvuus tunnisteen alle pom.xml-tiedostossa.

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

No Main Manifest -attribuuttivirheen syy

'No main manifest error' johtuu yleensä, jos olet sekaisin META-INF-kansiossa sijaitsevassa MANIFEST.MF-tiedostossa. Oletuksena siinä on seuraava merkintä:

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

Missä,

Manifest-versio on Manifest-tiedoston versio.

Rakentanut on tietokoneesi nimi.

Rakenna-Jdk on koneellesi asennettu JDK-versio.

Luonut on IDE:ssä käytetty laajennuksen nimi.

Kun suoritamme projektia, se etsii pääluokkaa MANIFEST.MF-tiedostosta. Se heittää virheilmoituksen 'Ei voi suorittaa jar-tiedostoa', jos se ei löydä merkintää. Kun suoritamme yllä olevia ratkaisuja, luokan merkintä päivittyy automaattisesti projektin manifestitiedostoon seuraavasti:

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