SfondoCaricamento della lib di JNI su Mac OS X?
Così sto cercando di caricare un jnilib (in particolare JOGL) in Java su Mac OS X in fase di esecuzione. Ho seguito lungo le pertinenti domande Stack Overflow:
- Maven and the JOGL Library
- Loading DLL in Java - Eclipse - JNI
- How to make a jar file that include all jar files
L'obiettivo finale per me è quello di confezionare i file JOGL specifici di piattaforma in un vaso e li decomprimere in una directory temporanea e caricarli all'avvio. Ho lavorato il mio problema alla schiena semplicemente il tentativo di caricare JOGL utilizzando percorsi hard-coded:
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());
ottengo la seguente eccezione quando si tenta di utilizzare l'API JOGL:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
Ma quando ho specificare java.library.path
da aggiungendo la seguente opzione JVM:
-Djava.library.path="/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/"
tutto funziona bene.
Domanda
E 'possibile l'uso System.load
(o qualche altra variante) su Mac OS X come un sostituto per -Djava.library.path che viene richiamato in fase di esecuzione?
Dolce! Grazie per questo, chiamare NativeLibLoader.disableLoading() prima di caricare manualmente le librerie ha funzionato brillantemente. – Clinton