2016-07-30 37 views
1

我正在使用OpenCV 2.4.9,JavaCV 0.7,JAVA版本進行人臉識別項目8和Eclipse IDE ...我不斷地得到這些異常..在下面的代碼中是否有錯誤?這不是我的complette代碼... 請人幫我儘快...如何刪除此異常「線程中的異常」主「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指定它使用

    的System.loadLibrary(Core.NATIVE_LIBRARY_NAME)OpenCV的DLL文件;

  2. 確保DLL位於JVM可以找到的地方。如果這樣做有幾種方法。我不使用Eclipse,但this似乎給了一個很好的解釋。另外,一個簡單的bodge只是把事情的工作是把DLL拖放到Windows \ System32目錄

最後,如果你運行的是64位JVM,但是試圖用一個32位的DLL有可能是一個問題。如果仍然遇到問題,請確保您使用的是匹配的JVM和DLL。

0

它看起來像Java庫的一個您正在使用您的項目正在使用使用dll文件的jni調用。你有沒有正確安裝庫?它看起來像它被稱爲opencv或與jniopencv_objdetect.dll有關的東西

相關問題