Rumah  >  Artikel  >  Java  >  Mengapa Projek JNI Saya Membuang "UntisfiedLinkError: Tidak Dapat Mencari Perpustakaan Bergantung"?

Mengapa Projek JNI Saya Membuang "UntisfiedLinkError: Tidak Dapat Mencari Perpustakaan Bergantung"?

Linda Hamilton
Linda Hamiltonasal
2024-11-18 07:26:02169semak imbas

Why Does My JNI Project Throw

Menyelesaikan UnsatisfiedLinkError dalam Projek JNI: Hilang Perpustakaan Bergantung

Dalam projek JNI, UnsatisfiedLinkError dengan mesej "Tidak dapat mencari perpustakaan bergantung " boleh timbul apabila pustaka tersuai, seperti mylib.dll, bergantung pada a pustaka pihak ketiga (cth., libsndfile-1.dll) yang tidak tersedia dalam laluan carian sistem. Untuk menyelesaikan isu ini, terdapat beberapa langkah utama yang perlu diikuti:

  1. Pastikan Peletakan DLL Betul: Letakkan kedua-dua DLL tersuai (mylib.dll) dan kebergantungan yang diperlukan (libsndfile- 1.dll) dalam direktori yang sama dengan fail JAR aplikasi Java.
  2. Sahkan Fungsi DLL Penamaan: Semak sama ada nama fungsi dalam DLL tersuai sepadan dengan nama yang ditakrifkan dalam fail pengepala JNI. Jika perlu, laraskan bendera pemaut dalam proses binaan untuk memastikan penamaan kaedah yang betul.
  3. Pertimbangkan Gelagat Khusus Windows: Pada Windows, jika sifat sistem java.library.path tidak secara eksplisit ditetapkan, DLL mesti berada dalam direktori kerja semasa atau direktori yang disertakan dalam persekitaran Windows PATH pembolehubah.

Petua Penyelesaian Masalah Tambahan:

  • Sahkan Amaran Pejalan Kaki Kebergantungan: Walaupun pejalan kaki kebergantungan menunjukkan import yang belum diselesaikan untuk MPR .DLL dan SHLWAPI.DLL, amaran ini selalunya boleh diabaikan, seperti yang dinyatakan dalam DW Soalan Lazim.
  • Semak Laluan Carian Perpustakaan Dikongsi: Gunakan arahan "java -XshowSettings:properties -version" (tersedia dalam Java 8 dan lebih baru) untuk memaparkan laluan carian perpustakaan dikongsi dan sahkan bahawa DLL yang diperlukan boleh diakses.
  • Hapuskan Isu Laluan Kelas: classpath dan laluan carian perpustakaan kongsi adalah berasingan dan tidak berkaitan. Pastikan semua fail JAR yang diperlukan disertakan dengan betul dalam laluan kelas.

Dengan mengikuti langkah-langkah ini dengan teliti, pembangun boleh menyelesaikan UnsatisfiedLinkErrors yang berkaitan dengan kehilangan perpustakaan bergantung dalam projek JNI, membolehkan aplikasi mereka berjalan dengan lancar.

Atas ialah kandungan terperinci Mengapa Projek JNI Saya Membuang "UntisfiedLinkError: Tidak Dapat Mencari Perpustakaan Bergantung"?. 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