JAR ファイル実行時の「無効な署名ファイル」エラーのトラブルシューティング
Java アーカイブ (JAR) ファイルを実行しようとすると、特定の状況により、 「マニフェストの主要属性の署名ファイル ダイジェストが無効です。」という複雑なエラーが発生します。この問題は、プログラムが外部ライブラリを利用し、JAR としてパッケージ化されている場合に発生することがあります。
このエラーの潜在的な原因の 1 つは、JAR 内にマニフェスト署名ファイルが存在することです。これらのファイルは、JAR ファイルのセキュリティ対策である署名プロセスの典型的な副産物です。 maven-shade-plugin を使用してシェーディングされた「uber-JAR」を作成しようとする場合、この競合を防ぐために除外構成が重要です。
この問題を解決するには、次のフィルター セクションを追加してプラグイン構成を変更します。 :
<configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <!-- Additional configuration. --> </configuration>
この構成では、マニフェスト署名ファイル (SF、DSA、RSA) が uber-JAR から除外されるため、エラーの原因が排除されます。この変更により、プログラムは「無効な署名ファイル」例外が発生することなく正常に実行されるはずです。
以上がJAR ファイルの「マニフェストのメイン属性の署名ファイル ダイジェストが無効です」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。