2016-07-30 9 views
1

OpenCV 2.4.9、JavaCV 0.7、JAVAバージョンを使用して顔認識プロジェクトに取り組んでいます8とEclipse IDE ...これらの例外は継続的に発生しています。次のコードに何か間違っていますか?それは私のcompletteコードではありません... 誰かが...できるだけ早く私を助けてくださいこの例外を取り除く方法 "スレッド内の例外" main "java.lang.UnsatisfiedLinkError:java.library.pathのjniopencv_objdetect"

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

例外:

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

あなたのコードではない、あなたはdllの問題があります。 jniopencv_objdetect.dllがjava.library.pathにないか、依存するDLLがありません。 –

+0

どうすれば追加できますか?あなたは可能な解決策を知っていますか? –

答えて

1

This page OpenCV Javaサンプルを実行する方法の説明があります。あなたがする必要がある二つのものがあるはずです:

  1. あなたはそれが

    System.loadLibraryを(Core.NATIVE_LIBRARY_NAME)を使用してOpenCVのDLLを指定するSystem.loadLibraryのを呼び出す必要があります。

  2. DLLは、JVMが検出できる場所にあることを確認してください。それを行うにはいくつかの方法があります。私はEclipseを使用していないが、thisは良い説明を与えるようだ。また、シンプルなbodgeだけで物事が働いて得るためには、あなたが64ビットJVMを実行しているが、32ビットのDLLを使用しようとしている場合

が最後に問題がある可能性がありますWINDOWS \ system32ディレクトリにDLLをドロップすることです。それでも問題が解決しない場合は、一致するJVMとDLLを使用していることを確認してください。

0

それはあなたの中に使用しているJavaライブラリのいずれかのように見えますプロジェクトは、dllファイルを使用するjni呼び出しを使用しています。ライブラリが正しくインストールされていますか?それはopencvまたはjniopencv_objdetect.dllに関連するものと思われます。

関連する問題