執行使用外部函式庫(例如bouncy castle)的JAR 檔案時,您可能會遇到以下情況錯誤:
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
要解決此問題,有必要了解根本原因。當 JAR 檔案包含無效或 Java 虛擬機器 (JVM) 無法辨識的簽章檔案時,通常會出現此錯誤。
Maven-Shade-Plugin 使用者的解決方案
對於嘗試使用maven-shade-plugin 建立著色uber-JAR 的人來說,解決方案包括從打包過程中排除特定的簽名文件。您可以透過將以下行新增至POM.xml 檔案中的外掛程式設定來實現此目的:
<filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters>
透過排除這些特定的簽章文件,您允許JVM 在驗證期間忽略它們,從而解決無效問題簽名錯誤。
以上是為什麼我的 JAR 檔案會拋出「java.lang.SecurityException:無效的簽署檔案摘要」錯誤,以及如何使用 Maven Shade 外掛程式修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!