Utilizzo Opencv 2.4.5 con Java per un po 'di tempo per creare un'applicazione e vorrei ora distribuire l'app. La libreria viene caricata utilizzando quanto segue:Come confezionare opencv + java in un jar
static{
System.loadLibrary("opencv_java245");
}
che funziona correttamente. Tuttavia, durante l'esportazione, non funziona durante l'esecuzione dal vaso:
java -jar build1.jar
Il file opencv_java245.jar è incluso come una libreria utente, con un file nativo (libopencv_java245.dylib) collegato ad esso. Quando eseguo il jar eseguibile generato da Eclipse, ottengo l'UnsatisfiedLinkError di seguito, nonostante la compilazione/esecuzione corretta di Eclipse.
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java245 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at com.drawbridge.Main.<clinit>(Main.java:12)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:266)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Qualcuno sa un modo semplice di imballaggio OpenCV nel vaso?
Aggiornamento: ora ho esaurito tutto. Posso aggiungere la libreria al mio percorso di build (e non usare System.loadLibrary) e funziona in eclissi, ma non quando è pacchettizzata nel jar. Ho provato di tutto. Ho anche controllato il tipo di libreria dinamica che sto cercando di carico - è
Mach-O 64-bit x86_64 dynamically linked shared library
che sembra che dovrebbe funzionare bene. Ho usato -D64 e -D32 per testare e ottenere lo stesso risultato con entrambi.
possibile duplicato di [estratto e caricare DLL da JAR] (http://stackoverflow.com/questions/4764347/extract -e-load-dll-from-jar) –
Non è possibile caricare una libreria nativa (o DLL) direttamente da un JAR. Vedi la Domanda collegata per come comportarsi con questo. –
Grazie @StephenC Ho provato questo metodo e continuo a ottenere UnsatisfiedLinkError ma con un messaggio diverso (qualcosa come il tipo sconosciuto). – alistair