Java プロジェクトでは、すべての実行可能 jar ファイルに main メソッドが含まれています。通常、アプリケーションの開始点に配置されます。自己実行 jar ファイルによって main メソッドを実行するには、適切なマニフェスト ファイルを用意し、適切な場所でプロジェクトでそれをラップする必要があります。これらのファイルには、メイン メソッドを持つクラスへのパスを定義するために使用されるメイン マニフェスト属性があります。
場合によっては、自己実行可能な jar があり、プロジェクトを実行しようとすると、次のエラー メッセージがスローされます。
Unable to execute jar- file: 'no main manifest attribute.'
上記のエラー メッセージは、MANIFEST.MF ファイルに Main-Class のエントリが欠落しているためにスローされます。
この問題は、どのような構成ベースでも発生する可能性があります。 ジャワ プロジェクト。その解決策について説明しましょう。
解決:
さまざまなプロジェクトでの解決策を理解してみましょう。
メイビン
で メイビン プロジェクトでは、MANIFEST.MF ファイル内の Main-Class のエントリが欠落しているためにこの問題が発生する可能性があります。この問題を解決するには、pom.xml ファイルに手動で maven-jar-プラグイン pom.xml内。
org.apache.maven.plugins maven-jar-plugin 3.1.0 com.javatpoint.AppMain
上記のコードでは、com.javatpoint.AppMain が Main-Class の完全修飾名です。クラスパスに従って完全修飾名を置き換える必要があります。完全修飾名をコピーするには、メイン クラスを含むパッケージを右クリックし、 完全修飾名をコピー 。
グラドル
Gradle プロジェクトでこのエラーが発生した場合は、次のエントリを build.gradle ファイル:
plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'com.javatpoint.AppMain' ) } }
Spring Boot アプリケーション
場合によっては、このエラーが発生することがあります スプリングブーツ プロジェクト。 Spring Boot プロジェクトでこのエラーを解決するのは簡単です。 SB プロジェクトでこのエラーを修正するには、pom.xml ファイルのタグの下に maven-plugin 依存関係を配置します。
org.springframework.boot spring-boot-maven-plugin 4.0.1
メインマニフェスト属性なしエラーの根本原因
「メインマニフェストなしエラー」は通常、META-INF フォルダの下にある MANIFEST.MF ファイルをいじった場合に発生します。デフォルトでは、次のエントリがあります。
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse
どこ、
マニフェストバージョン マニフェスト ファイルのバージョンです。
によって建設された はあなたのPC名です。
ビルド-JDK は、マシンにインストールされている JDK のバージョンです。
によって作成された IDE で使用されるプラグイン名です。
プロジェクトを実行すると、MANIFEST.MF ファイルで Main-Class が検索されます。エントリが見つからない場合は、「jar ファイルを実行できません」というエラー メッセージがスローされます。上記のソリューションを実行すると、プロジェクトのマニフェスト ファイル内のクラス エントリが次のように自動的に更新されます。
Manifest-Version: 1.0 Built-By: alien Build-Jdk: 1.8.0 Created-By: Maven Integration for Eclipse Main-Class: com.javatpoint.AppMain