W projekcie Java każdy wykonywalny plik jar zawiera metodę główną. Zwykle umieszcza się go w punkcie początkowym aplikacji. Aby wykonać metodę główną za pomocą samowykonującego się pliku jar, musimy mieć odpowiedni plik manifestu i opakować go naszym projektem w odpowiedniej lokalizacji. Pliki te mają główny atrybut manifestu, który służy do zdefiniowania ścieżki do klasy posiadającej metodę main.
Czasami mamy samowykonywalny słoik i kiedy próbujemy wykonać projekt, wyświetli się następujący komunikat o błędzie:
Unable to execute jar- file: 'no main manifest attribute.'
Powyższy komunikat o błędzie jest zgłaszany z powodu braku wpisu klasy głównej w pliku MANIFEST.MF.
Możesz napotkać ten problem w dowolnej konfiguracji Jawa projekt. Omówmy jego rozwiązania:
Rozwiązanie:
Rozumiemy jego rozwiązania w różnych projektach:
Mavena
W Mavena Project, ten problem może wystąpić z powodu braku wpisu klasy głównej w pliku MANIFEST.MF. Aby rozwiązać ten problem, możemy zdefiniować go w naszym pliku pom.xml, ręcznie umieszczając plik wtyczka maven-jar w pom.xml.
org.apache.maven.plugins maven-jar-plugin 3.1.0 com.javatpoint.AppMain
W powyższym kodzie com.javatpoint.AppMain jest naszą w pełni kwalifikowaną nazwą klasy głównej. Musisz zastąpić w pełni kwalifikowaną nazwę zgodnie ze ścieżką klasy. Aby skopiować pełną nazwę, kliknij prawym przyciskiem myszy pakiet zawierający klasę główną i wybierz Skopiuj w pełni kwalifikowaną nazwę .
Gradle
Jeśli otrzymujesz ten błąd w swoim projekcie Gradle, możesz rozwiązać ten problem, umieszczając następujące wpisy w pliku kompilacja.gradle plik:
plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'com.javatpoint.AppMain' ) } }
Aplikacja Spring Boot
Czasami ten błąd może wystąpić w pliku Wiosenne buty projekt. Łatwo jest rozwiązać ten błąd w projekcie Spring Boot. Aby naprawić ten błąd w projekcie SB, umieść zależność maven-plugin pod znacznikiem w pliku pom.xml.
org.springframework.boot spring-boot-maven-plugin 4.0.1
Główna przyczyna błędu braku głównego atrybutu manifestu
Błąd „brak głównego manifestu” zwykle pojawia się, jeśli namieszałeś w pliku MANIFEST.MF znajdującym się w folderze META-INF. Domyślnie ma następujący wpis:
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse
Gdzie,
Wersja manifestu to wersja pliku manifestu.
Zbudowane przez to nazwa twojego komputera.
Build-Jdk to wersja JDK zainstalowana na twoim komputerze.
Stworzone przez to nazwa wtyczki używana w IDE.
Kiedy uruchomimy projekt, będzie on szukał klasy głównej w pliku MANIFEST.MF. Jeśli nie znajdzie wpisu, wyświetli się komunikat o błędzie „Nie można wykonać pliku jar”. Kiedy uruchomimy powyższe rozwiązania, wpis klasy zostanie automatycznie zaktualizowany w pliku manifestu projektu w następujący sposób:
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse Main-Class: com.javatpoint.AppMain