/ / इस अपवाद को कैसे दूर करें "थ्रेड में अपवाद" मुख्य "java.lang.UnsatisfiedLinkError: no jniopencv_objdetect in java.library.path" - java, eclipse, opencv, javacv, फेस-रिकॉग्निशन

इस अपवाद को कैसे हटाएं "थ्रेड में अपवाद" मुख्य "java.lang.UnsatisfiedLinkError: java.library.path में कोई jniopencv_objdetect नहीं" - जावा, ग्रहण, opencv, javacv, चेहरा पहचान

मैं फेस रिकॉग्निशन प्रोजेक्ट पर काम कर रहा हूंOpenCV 2.4.9, JavaCV 0.7, जावा संस्करण 8 और ग्रहण आईडीई ... मुझे ये अपवाद लगातार मिल रहे हैं .. क्या फॉलोविंग कोड में कुछ गड़बड़ है? यह मेरा संकलन कोड नहीं है ... कृपया किसी ने मुझे जितनी जल्दी हो सके मदद ...

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:UsersXYXAppDataLocalTempjavacpp183187286948746jniopencv_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

उत्तर:

उत्तर № 1 के लिए 1

यह पन्ना OpenCV जावा सैंपल कैसे प्राप्त करें, इसका विवरण देता है। दो चीजें होनी चाहिए जो आपको करने की आवश्यकता है:

  1. आपको OpenCV DLL को निर्दिष्ट करने वाले System.LoadLibrary को कॉल करने की आवश्यकता है जो इसका उपयोग करता है

    System.loadLibrary (Core.NATIVE_LIBRARY_NAME);

  2. डीएलएल को सुनिश्चित करें कि कहीं यह जेवीएम द्वारा पाया जा सकता है। ऐसा करने के कुछ तरीके हैं। मैं ग्रहण का उपयोग नहीं करता हूं लेकिन इस एक अच्छी व्याख्या देने के लिए लगता है। वैकल्पिक रूप से, काम करने वाली चीजों को प्राप्त करने के लिए एक सरल दावा है कि DLL को windowssystem32 निर्देशिका में छोड़ दिया जाए

अंत में एक समस्या हो सकती है यदि आप 64 बिट जेवीएम चला रहे हैं लेकिन 32 बिट डीएलएल का उपयोग करने की कोशिश कर रहे हैं। यदि आपको अभी भी परेशानी हो रही है तो सुनिश्चित करें कि आप JVM और DLL से मेल खा रहे हैं।


जवाब के लिए 0 № 2

यह जावा पुस्तकालयों में से एक की तरह लग रहा है कि आपअपने प्रोजेक्ट में उपयोग कर रहे हैं jni कॉल का उपयोग कर रहे हैं जो dll फ़ाइलों का उपयोग करता है। क्या आपके पास पुस्तकालय सही ढंग से स्थापित है? ऐसा लगता है कि इसे opencv कहा जाता है या ऐसा कुछ जो jniopencv_objdetect.dll से संबंधित है