JAR ファイルの実行時に「マニフェストのメイン属性の署名ファイル ダイジェストが無効です」エラーが発生すると、混乱する場合があります。このエラーは、JAR アーカイブの整合性と信頼性を検証するために使用される署名ファイルに関連する問題が原因で発生することがよくあります。
今回のケースでは、問題は外部ライブラリ、bouncy Castle、カスタム JAR ファイル内。コンパイルは成功しますが、JAR を実行すると前述のエラーが発生します。
解決策の 1 つは、JAR の作成中に署名ファイルを除外することです。これは、Maven シェード プラグイン設定に特定のフィルター要素を追加することで実現できます。これらの要素はマニフェストから署名ファイルを除外し、エラーの発生を効果的に防止します。
この解決策を実装するには、プラグイン設定内に次の行を追加します。
<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>
これらの署名ファイルを除外することで、エラーが解決され、署名検証に関連する問題が発生することなく JAR ファイルが正常に実行されるようになります。
以上がJAR ファイルの実行時に発生する「マニフェストのメイン属性の署名ファイル ダイジェストが無効です」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。