2016-07-30 15 views
1

Ich arbeite an Face Recognition Project mit OpenCV 2.4.9, JavaCV 0.7, JAVA-Version 8 und Eclipse IDE ... Ich bekomme diese Ausnahmen kontinuierlich .. Ist etwas falsch in dem folgenden Code? Es ist nicht meine complette Code ... Bitte jemand mir helfen, so schnell wie möglich ...So entfernen Sie diese Ausnahme "Ausnahme im Thread" main "java.lang.UnsatisfiedLinkError: keine jniopencv_objdetect in java.library.path"

import com.googlecode.javacpp.Loader; 
import com.googlecode.javacv.cpp.opencv_objdetect; 
Loader.load(opencv_objdetect.class); 

Ausnahmen:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_objdetect in java.library.path 
    at java.lang.ClassLoader.loadLibrary(Unknown Source) 
    at java.lang.Runtime.loadLibrary0(Unknown Source) 
    at java.lang.System.loadLibrary(Unknown Source) 
    at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711) 
    at com.googlecode.javacpp.Loader.load(Loader.java:586) 
    at com.googlecode.javacpp.Loader.load(Loader.java:540) 
    at com.googlecode.javacv.cpp.opencv_objdetect.<clinit>(opencv_objdetect.java:91) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at com.googlecode.javacpp.Loader.load(Loader.java:561) 
    at FaceRecognizer.<init>(FaceRecognizer.java:56) 
    at FaceRecognizer.main(FaceRecognizer.java:112) 
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\XYX\AppData\Local\Temp\javacpp183187286948746\jniopencv_objdetect.dll: Can't find dependent libraries 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    at java.lang.ClassLoader.loadLibrary0(Unknown Source) 
    at java.lang.ClassLoader.loadLibrary(Unknown Source) 
    at java.lang.Runtime.load0(Unknown Source) 
    at java.lang.System.load(Unknown Source) 
    at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:700) 
    ... 8 more 
+0

Es ist nicht Ihr Code, Sie haben ein DLL-Problem. Entweder jniopencv_objdetect.dll ist nicht in der java.library.path oder eine dll es hängt davon ab, fehlt. –

+0

Also, wie kann ich es hinzufügen? Weißt du irgendeine mögliche Lösung? –

Antwort

1

This page gibt eine Beschreibung, wie ein OpenCV Java-Beispiel ausgeführt wird. Es sollte zwei Dinge, die Sie tun müssen:

  1. Sie benötigen System.loadLibrary die OpenCV DLLs Angabe nennen, die es verwendet

    System.loadLibrary (Core.NATIVE_LIBRARY_NAME);

  2. Stellen Sie sicher, dass sich die DLL irgendwo befindet, wo sie von der JVM gefunden werden kann. Es gibt ein paar Möglichkeiten, wenn Sie das tun. Ich benutze nicht Eclipse, aber this scheint eine gute Erklärung zu geben. Alternativ nur eine einfache bodge, um Dinge zu arbeiten, ist die DLL in das Verzeichnis Windows \ System32

Schließlich fallen kann es ein Problem sein, wenn Sie einen 64-Bit-JVM ausgeführt werden aber versuchen, eine 32-Bit-DLL zu verwenden, . Wenn Sie weiterhin Probleme haben, stellen Sie sicher, dass Sie die passende JVM und DLL verwenden.

0

Es sieht aus wie eine der Java-Bibliotheken, die Sie bei der Verwendung sind Ihre Projekt verwendet Jni-Aufrufe, die DLL-Dateien verwendet. Haben Sie die Bibliothek korrekt installiert? Es sieht so aus, als wäre es opencv oder etwas, das mit jniopencv_objdetect.dll in Beziehung steht.

Verwandte Themen