AntecedentesCargando JNI lib en Mac OS X?
Así que estoy tratando de cargar un jnilib (específicamente JOGL) en Java en Mac OS X en tiempo de ejecución. He estado siguiendo a lo largo de las preguntas pertinentes desbordamiento de pila:
- Maven and the JOGL Library
- Loading DLL in Java - Eclipse - JNI
- How to make a jar file that include all jar files
El objetivo final para mí es empaquetar los archivos JOGL específicos de la plataforma en un frasco y descomprimir en un directorio temporal y cargarlos en la puesta en marcha. Trabajé mi problema de espalda simplemente intentar cargar JOGL mediante rutas no modificables:
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());
consigo la siguiente excepción al intentar utilizar la API JOGL:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
Pero cuando especifico java.library.path
por agregando la siguiente opción de JVM:
-Djava.library.path="/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/"
Todo funciona bien.
Pregunta
¿Es posible el uso System.load
(o alguna otra variante) en Mac OS X como un reemplazo para Djava.library.path que se invoca en tiempo de ejecución?
¡Dulce! Gracias por esto, llamar a NativeLibLoader.disableLoading() antes de cargar manualmente las bibliotecas funcionó brillantemente. – Clinton