nềnĐang tải JNI lib trên Mac OS X?
Vì vậy, tôi đang cố gắng để tải một jnilib (đặc biệt JOGL) vào Java trên Mac OS X khi chạy. Tôi đã theo cùng những câu hỏi liên quan Stack Overflow:
- Maven and the JOGL Library
- Loading DLL in Java - Eclipse - JNI
- How to make a jar file that include all jar files
Mục tiêu cuối cùng đối với tôi là để gói nền tảng file JOGL cụ thể vào một JAR và giải nén chúng vào thư mục tạm thời và tải chúng lúc khởi động. Tôi làm việc vấn đề của tôi lại chỉ đơn giản là cố gắng để tải JOGL sử dụng đường dẫn mã hóa cứng:
File f = new File("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl.jnilib");
System.load(f.toString());
f = new File ("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl_awt.jnilib");
System.load(f.toString());
tôi nhận được ngoại lệ sau khi cố gắng sử dụng API JOGL:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
Nhưng khi tôi chỉ định java.library.path
bởi thêm tùy chọn JVM sau:
-Djava.library.path="/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/"
Mọi thứ hoạt động tốt.
Câu hỏi
Có thể sử dụng System.load
(hoặc một số biến thể khác) trên Mac OS X như một sự thay thế cho -Djava.library.path được viện dẫn khi chạy?
Ngọt ngào! Cảm ơn điều này, gọi NativeLibLoader.disableLoading() trước khi tải các thư viện một cách thủ công một cách rực rỡ. – Clinton