Se si ottiene questo errore:
Exception in thread "main"
java.lang.UnsatisfiedLinkError: no opencv_java in java.library.path
probabilmente significa che sono riprese dal fianco, la programmazione da moto browniano, cercando di ottenere OpenCV per funzionare. Come cercare di capire come funziona un aereo in volo premendo tutti i pulsanti furiosamente. Avrai un brutto momento.
Cosa significa l'errore:
Eclipse vi sta dicendo che il file jar non riesce a trovare le librerie di cui ha bisogno per fare il suo lavoro. Quindi, naturalmente, non funzionerà finché non li renderai disponibili. Devi trovare un tutorial su "come costruire openCV dal sorgente" sulla tua piattaforma particolare: (windows, mac, linux, ecc.), (32 bit, 64 bit, ecc.).
Fondamentalmente, si ignoravano le impostazioni della "Posizione libreria nativa" o non le si impostano correttamente, e quindi il barattolo non può trovare le sue librerie di supporto scritte in C
.
Come non risolvere il problema, mille vista piede:
- scaricare il codice sorgente per OpenCV per il sistema operativo.
- Seguire le istruzioni per creare openCV dalla sorgente.
- Copia il jar in una directory lib nel tuo progetto Java.
- Configurare il barattolo per cercare le sue librerie native impostando la "posizione della libreria nativa" nella directory
build/lib
sotto il percorso in cui è stato creato openCV dall'origine.
- Pulire compilare il progetto java e UnsatisfiedLinkError dovrebbe andare via.
Questo blog parla dei punti di cui sopra in dettaglio step-by-step: https://udallascs.wordpress.com/2014/03/30/adding-opencv-and-configuring-to-work-with-eclipse-and-java/
Perché non può questo essere solo un semplice barattolo?
Poiché la maggior parte di openCV è scritta nel linguaggio di programmazione C
.E il file jar che stai usando è solo una finestra sul mondo C. Quindi è una macchina rube Goldberg. Vedrai questo genere di cose dappertutto nel mondo del lavoro reale, quindi fai attenzione, stai ricevendo un'istruzione qui.
fonte
2015-03-17 00:57:50
È possibile aggiungere del codice dove si integrano le librerie opencv in java? Sembra che Classloader non riesca a trovare la libreria. – Fildor
In Run Configurations, ho aggiunto l'argomento '-Djava.library.path = C: \ opencvFinal'. Anche in Java Build Path ho aggiunto la cartella di classe esterna che è 'C: \ opencvFinal \ bin', dove vengono salvate tutte le DLL opencv. E quando chiamo 'System.loadLibrary (" opencv_java ");' mi dà un'eccezione. – andriy
Aspetta, hai solo le dll? Quello di cui hai bisogno è un barattolo che avvolge quelle DLL. O devi avvolgerli tu stesso usando [jni] (http://en.wikipedia.org/wiki/Java_Native_Interface#How_the_JNI_works). – Fildor