Menyelesaikan Ralat Fail Tandatangan Tidak Sah dalam Pelaksanaan Jar
Setelah mencuba untuk melaksanakan program Java yang dibungkus sebagai .jar, pengguna mungkin menghadapi ralat "java.lang.SecurityException: Ringkasan fail tandatangan tidak sah untuk atribut utama Manifes." Ralat ini biasanya berlaku apabila .jar menggunakan pustaka luaran seperti bouncy castle.
Punca ralat ini terletak pada proses pengesahan tandatangan Mesin Maya Java (JVM). JVM menyemak tandatangan fail Manifes yang disertakan dalam .jar untuk memastikan ketulenan dan integritinya. Walau bagaimanapun, jika pustaka yang digunakan termasuk tandatangannya sendiri, ia boleh bercanggah dengan proses pengesahan JVM.
Satu penyelesaian yang berpotensi untuk isu ini sangat relevan kepada mereka yang menggunakan maven-shade-plugin untuk mencipta uber-jars ialah dengan kecualikan fail tandatangan daripada proses teduhan. Dengan menambahkan baris berikut pada konfigurasi pemalam, fail tandatangan akan dikecualikan, menyelesaikan ralat:
<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 daripada uber-jar, konflik dengan proses pengesahan JVM dielakkan, dan atur cara akan dilaksanakan tanpa ralat "Fail tandatangan tidak sah".
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'java.lang.SecurityException: Digest fail tandatangan tidak sah' dalam Fail JAR Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!