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?
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!