Menyelesaikan Masalah UnsatisfiedLinkError Akibat Kehilangan Perpustakaan Bergantung dalam Projek JNI
Apabila bekerja dengan projek Java yang menggunakan Antara Muka Asli Java (JNI), menghadapi ralat "java.lang.UnsatisfiedLinkError: Tidak dapat mencari perpustakaan bergantung" boleh mengecewakan. Ralat ini timbul apabila Mesin Maya Java (JVM) tidak dapat mengesan perpustakaan asli yang diperlukan oleh pustaka tersuai anda, yang dalam kes ini ialah mylib.dll.
Punca dan Penyelesaian
Walaupun mencuba beberapa penyelesaian yang dinyatakan dalam siaran asal, isu itu masih tidak dapat diselesaikan. Berikut ialah beberapa langkah penyelesaian masalah lanjut untuk dipertimbangkan:
-
Sahkan Kebergantungan Perpustakaan:
Gunakan Dependency Walker atau alat yang serupa untuk memastikan mylib.dll menyenaraikan libsndfile-1 secara eksplisit. dll sebagai kebergantungan. Kebergantungan yang hilang atau tidak betul boleh menyebabkan UnsatisfiedLinkError.
-
Semak PATH Windows:
Pastikan direktori yang mengandungi libsndfile-1.dll disertakan dalam pembolehubah persekitaran Windows PATH. Ini memastikan JVM boleh mencari perpustakaan yang diperlukan.
-
Teroka java.library.path:
Seperti yang dicadangkan dalam penyelesaian yang disediakan, sahkan nilai java.library.path harta sistem menggunakan arahan "java -XshowSettings:properties -version". Sifat ini menentukan laluan yang dicari oleh JVM untuk perpustakaan asli. Tambahkan direktori yang mengandungi mylib.dll dan libsndfile-1.dll ke laluan ini.
-
Periksa Mekanisme Pemuatan Perpustakaan Asli:
Jika langkah di atas gagal, pertimbangkan untuk memeriksa mekanisme yang digunakan untuk memuatkan perpustakaan asli. Secara lalai, Java menggunakan pendekatan "pertama ditemui", di mana ia memuatkan contoh pertama perpustakaan yang sepadan dengan nama yang ditentukan. Pastikan versi dan kebergantungan yang betul terdapat dalam pustaka yang dimuatkan.
Petua Tambahan
-
Gunakan jna-platform: Pertimbangkan untuk menggunakan perpustakaan jna-platform, yang secara automatik mengesan dan memuatkan kebergantungan khusus platform, berpotensi memudahkan pemuatan perpustakaan.
-
Kontekstualkan Isu: Berikan lebih banyak maklumat tentang sistem pengendalian dan versi Java yang digunakan, serta sebarang skrip binaan atau konfigurasi yang berkaitan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Masalah 'java.lang.UnsatisfiedLinkError: Tidak dapat mencari perpustakaan bergantung' dalam Projek JNI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!