Java projekte kiekviename vykdomajame jar faile yra pagrindinis metodas. Paprastai jis dedamas programos pradžios taške. Norėdami vykdyti pagrindinį metodą savaime vykdančiu jar failu, turime turėti tinkamą manifesto failą ir apvynioti jį savo projektu tinkamoje vietoje. Šie failai turi pagrindinį manifesto atributą, kuris naudojamas apibrėžti kelią į klasę, turinčią pagrindinį metodą.
Kartais turime savaime vykdomą stiklainį, o kai bandome vykdyti projektą, jis išmes šį klaidos pranešimą:
Unable to execute jar- file: 'no main manifest attribute.'
Aukščiau pateiktas klaidos pranešimas rodomas, nes faile MANIFEST.MF trūksta pagrindinės klasės įrašo.
Su šia problema galite susidurti naudodami bet kokią konfigūraciją Java projektą. Aptarkime jo sprendimus:
Sprendimas:
Supraskime jos sprendimus skirtinguose projektuose:
Maven
Į Maven Projekte, ši problema gali kilti, nes faile MANIFEST.MF trūksta pagrindinės klasės įrašo. Norėdami išspręsti šią problemą, galime ją apibrėžti savo pom.xml faile rankiniu būdu įdėdami a maven-jar-plugin pom.xml.
org.apache.maven.plugins maven-jar-plugin 3.1.0 com.javatpoint.AppMain
Aukščiau pateiktame kode com.javatpoint.AppMain yra mūsų visiškai kvalifikuotas pagrindinės klasės pavadinimas. Turite pakeisti visiškai apibrėžtą pavadinimą pagal savo klasės kelią. Norėdami nukopijuoti visą pavadinimą, dešiniuoju pelės mygtuku spustelėkite paketą, kuriame yra pagrindinė klasė, ir pasirinkite Nukopijuokite visiškai kvalifikuotą vardą .
Gradle
Jei gaunate šią klaidą savo Gradle projekte, galite ją išspręsti įdėdami šiuos įrašus į savo statyti.gradle failas:
plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'com.javatpoint.AppMain' ) } }
Pavasario įkrovos programa
Kartais ši klaida gali būti jūsų Pavasariniai batai projektą. Šią klaidą lengva išspręsti „Spring Boot“ projekte. Norėdami ištaisyti šią klaidą SB projekte, pom.xml faile po žyma įdėkite priklausomybę nuo maven-plugin.
org.springframework.boot spring-boot-maven-plugin 4.0.1
Pagrindinė priežastis, dėl kurios nėra pagrindinio akivaizdaus atributo klaidos
„Pagrindinės akivaizdžios klaidos nėra“ paprastai atsiranda, jei suklydote MANIFEST.MF faile, esančiame aplanke META-INF. Pagal numatytuosius nustatymus jame yra šis įrašas:
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse
kur,
Manifesto versija yra manifesto failo versija.
Pastatytas yra jūsų kompiuterio pavadinimas.
Build-Jdk yra jūsų kompiuteryje įdiegta JDK versija.
Sukurta yra papildinio pavadinimas, naudojamas IDE.
Kai vykdysime projektą, jis ieškos pagrindinės klasės faile MANIFEST.MF. Jei neras įrašo, jis parodys klaidos pranešimą „Neįmanoma vykdyti jar failo“. Kai paleidžiame aukščiau nurodytus sprendimus, klasės įrašas bus automatiškai atnaujintas projekto manifesto faile taip:
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse Main-Class: com.javatpoint.AppMain