首頁 >Java >java教程 >為什麼我的 JAR 檔案會拋出「java.lang.SecurityException:無效的簽署檔案摘要」錯誤,以及如何使用 Maven Shade 外掛程式修復它?

為什麼我的 JAR 檔案會拋出「java.lang.SecurityException:無效的簽署檔案摘要」錯誤,以及如何使用 Maven Shade 外掛程式修復它?

Linda Hamilton
Linda Hamilton原創
2025-01-03 12:12:41994瀏覽

Why Does My JAR File Throw a

了解JAR 執行中的「無效簽章」錯誤

執行使用外部函式庫(例如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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn