Rumah >Java >javaTutorial >Mengapa Fail JAR Saya Melemparkan Ralat 'java.lang.SecurityException: Intisari fail tandatangan tidak sah', dan Bagaimana Saya Boleh Membetulkannya Menggunakan Pemalam Maven Shade?

Mengapa Fail JAR Saya Melemparkan Ralat 'java.lang.SecurityException: Intisari fail tandatangan tidak sah', dan Bagaimana Saya Boleh Membetulkannya Menggunakan Pemalam Maven Shade?

Linda Hamilton
Linda Hamiltonasal
2025-01-03 12:12:41980semak imbas

Why Does My JAR File Throw a

Memahami Ralat "Fail Tandatangan Tidak Sah" dalam Pelaksanaan JAR

Apabila melaksanakan fail JAR yang menggunakan pustaka luaran, seperti bouncy castle, anda mungkin menghadapi perkara berikut ralat:

Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

Untuk menyelesaikan isu ini, anda perlu memahami punca sebab. Ralat ini biasanya timbul apabila fail JAR mengandungi fail tandatangan yang tidak sah atau tidak dikenali oleh Java Virtual Machine (JVM).

Penyelesaian untuk Pengguna Maven-Shade-Plugin

Bagi mereka yang cuba mencipta uber-JAR berlorek menggunakan maven-shade-plugin, penyelesaiannya melibatkan pengecualian khusus fail tandatangan daripada proses pembungkusan. Anda boleh mencapai ini dengan menambahkan baris berikut pada konfigurasi pemalam anda dalam fail 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>

Dengan mengecualikan fail tandatangan khusus ini, anda membenarkan JVM mengabaikannya semasa pengesahan, dengan itu menyelesaikan fail yang tidak sah ralat tandatangan.

Atas ialah kandungan terperinci Mengapa Fail JAR Saya Melemparkan Ralat 'java.lang.SecurityException: Intisari fail tandatangan tidak sah', dan Bagaimana Saya Boleh Membetulkannya Menggunakan Pemalam Maven Shade?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn