1. Semuanya dapat digunakan untuk memuat file perpustakaan, baik itu file perpustakaan JNI atau file perpustakaan non-JNI. File perpustakaan JNI yang sesuai harus dimuat menggunakan salah satu dari dua metode ini sebelum metode asli apa pun dipanggil.
2. Parameter System.load adalah jalur absolut dari file perpustakaan, yang dapat berupa jalur apa pun.
Misalnya, Anda dapat memuat file perpustakaan JNI di bawah platform windows seperti ini:
System.load("C://Dokumen dan Pengaturan//TestJNI.dll");.
3. Parameter System.loadLibrary adalah nama file perpustakaan dan tidak menyertakan ekstensi file perpustakaan.
Misalnya, Anda dapat memuat file perpustakaan JNI di bawah platform windows seperti ini
System.loadLibrary ("TestJNI");
Di sini, TestJNI.dll harus berada di jalur yang ditunjuk oleh variabel jvm java.library.path.
Nilai variabel ini dapat diperoleh sebagai berikut:
System.getProperty("java.library.path");
Secara default, pada platform Windows, nilai ini berisi lokasi berikut:
1) Beberapa direktori yang berhubungan dengan jre
2) Direktori program saat ini
3) Direktori Windows
4) Direktori sistem (system32)
5) Jalur variabel lingkungan sistem menentukan direktori
4. Jika file perpustakaan yang ingin Anda muat terhubung secara statis ke perpustakaan tautan dinamis lainnya, misalnya TestJNI.dll terhubung secara statis ke dependency.dll, maka Anda harus memperhatikan:
1) Jika Anda memilih
System.load("C://Dokumen dan Pengaturan// TestJNI.dll");
Bahkan jika Anda meletakkan dependency.dll di bawah C://Documents and Settings//, pemuatan akan tetap gagal karena dll yang bergantung tidak dapat ditemukan. Karena ketika jvm memuat TestJNI.dll, pertama-tama ia akan memuat file perpustakaan dependency.dll tempat TestJNI.dll bergantung, dan dependency.dll tidak terletak di direktori yang ditentukan oleh java.library.path, sehingga jvm tidak dapat menemukan ketergantungan .dll.
Anda memiliki dua cara untuk mengatasi masalah ini: Pertama, tambahkan C://Documents and Settings// ke jalur java.library.path, misalnya, tambahkan ke jalur sistem. Yang kedua adalah menelepon dulu
System.load("C://Documents and Settings// dependency.dll"); Biarkan jvm memuat dependency.dll terlebih dahulu, lalu panggil System.load("C://Documents and Settings// TestJNI.dll" );
2) Jika Anda memilih
System.loadLibrary ("TestJNI");
Kemudian Anda hanya perlu meletakkan dependency.dll di jalur mana pun yang termasuk dalam java.library.path, termasuk direktori yang sama dengan TestJNI.dll.