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