V projekte Java obsahuje každý spustiteľný súbor jar hlavnú metódu. Zvyčajne je umiestnený na začiatku aplikácie. Ak chcete spustiť hlavnú metódu pomocou samospusteného súboru jar, musíme mať správny súbor manifestu a zabaliť ho do nášho projektu na správnom mieste. Tieto súbory majú hlavný atribút manifestu, ktorý sa používa na definovanie cesty k triede s hlavnou metódou.
Niekedy máme samospustiteľný jar a keď sa pokúsime spustiť projekt, zobrazí sa nasledujúce chybové hlásenie:
Unable to execute jar- file: 'no main manifest attribute.'
Vyššie uvedené chybové hlásenie je vyvolané z dôvodu chýbajúcej položky Main-Class v súbore MANIFEST.MF.
S týmto problémom sa môžete stretnúť pri akejkoľvek konfigurácii Java projektu. Poďme diskutovať o jeho riešeniach:
Riešenie:
Poďme pochopiť jeho riešenia v rôznych projektoch:
Maven
In Maven Project, tento problém sa môže vyskytnúť z dôvodu chýbajúcej položky Main-Class v súbore MANIFEST.MF. Aby sme tento problém vyriešili, môžeme ho definovať v našom súbore pom.xml manuálnym vložením a maven-jar-plugin v pom.xml.
org.apache.maven.plugins maven-jar-plugin 3.1.0 com.javatpoint.AppMain
Vo vyššie uvedenom kóde je com.javatpoint.AppMain náš plne kvalifikovaný názov hlavnej triedy. Musíte nahradiť plne kvalifikovaný názov podľa vašej triedy. Ak chcete skopírovať úplný názov, kliknite pravým tlačidlom myši na balík, ktorý obsahuje hlavnú triedu a vyberte Skopírujte plne kvalifikovaný názov .
Gradle
Ak sa vám táto chyba zobrazuje vo vašom projekte Gradle, môžete to vyriešiť vložením nasledujúcich položiek do vášho projektu stavať.gradle súbor:
plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'com.javatpoint.AppMain' ) } }
Aplikácia Spring Boot
Niekedy sa táto chyba môže vyskytnúť vo vašom Jarná čižma projektu. Túto chybu je ľahké vyriešiť v projekte Spring Boot. Ak chcete opraviť túto chybu v projekte SB, vložte závislosť maven-plugin pod značku v súbore pom.xml.
org.springframework.boot spring-boot-maven-plugin 4.0.1
Hlavná príčina chyby bez hlavného manifestu
„Chyba bez hlavného manifestu“ je zvyčajne spôsobená, ak ste sa poplietli do súboru MANIFEST.MF, ktorý sa nachádza v priečinku META-INF. V predvolenom nastavení má nasledujúci záznam:
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse
Kde,
Manifest-Verzia je verzia súboru Manifest.
Built-By je názov vášho počítača.
Build-Jdk je verzia JDK nainštalovaná vo vašom počítači.
Vytvoril je názov doplnku používaný v IDE.
Keď spustíme projekt, bude hľadať hlavnú triedu v súbore MANIFEST.MF. Ak nenájde položku, zobrazí chybovú správu „Nedá sa spustiť súbor jar“. Keď spustíme vyššie uvedené riešenia, položka triedy sa automaticky aktualizuje v súbore Manifest projektu takto:
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse Main-Class: com.javatpoint.AppMain