आप इस त्रुटि मिलती है:
Exception in thread "main"
java.lang.UnsatisfiedLinkError: no opencv_java in java.library.path
यह शायद मतलब है कि आप कूल्हे, ब्राउनियन गति से प्रोग्रामिंग से शूटिंग कर रहे हैं, openCV काम करने के लिए प्राप्त करने की कोशिश। सभी बटनों को जोर से दबाकर एक हवाई जहाज उड़ान में कैसे काम करता है यह जानने की कोशिश करना। आप एक बुरा समय होने जा रहे हैं।
त्रुटि क्या मतलब है:
ग्रहण आप कह रहा है कि जार फ़ाइल पुस्तकालयों यह अपना काम करने की जरूरत है नहीं मिल रहा। तो स्वाभाविक रूप से यह तब तक काम नहीं करेगा जब तक आप उन्हें उपलब्ध नहीं कराते। आपको अपने विशेष प्लेटफॉर्म पर "स्रोत से ओपनसीवी कैसे बनाएं" पर एक ट्यूटोरियल मिलना होगा: (विंडोज़, मैक, लिनक्स, आदि), (32 बिट, 64 बिट, आदि)।
असल में, आपने 'मूल पुस्तकालय स्थान' सेटिंग्स पर चमक ली है, या उन्हें सही ढंग से सेट नहीं किया है, और इसलिए जार C
में लिखे गए समर्थन पुस्तकालयों को नहीं ढूंढ सकता है।
इसे कैसे ठीक करूं, हजार फुट दृश्य:
- openCV के लिए स्रोत कोड आपके ऑपरेटिंग सिस्टम के लिए डाउनलोड करें।
- स्रोत से openCV बनाने के लिए दिशानिर्देशों का पालन करें।
- अपने जावा प्रोजेक्ट में जार को एक lib निर्देशिका में कॉपी करें।
- "मूल पुस्तकालय स्थान" को उस स्थान के नीचे
build/lib
निर्देशिका में सेट करके अपने मूल पुस्तकालयों को देखने के लिए जार को कॉन्फ़िगर करें जहां आपने स्रोत से ओपनसीवी बनाया था।
- जावा परियोजना को साफ करें, और असंतुष्ट लिंक्स त्रुटि को दूर जाना चाहिए।
कदम के बारे में इस ब्लॉग वार्ता कदम-दर-कदम विस्तार से ऊपर: https://udallascs.wordpress.com/2014/03/30/adding-opencv-and-configuring-to-work-with-eclipse-and-java/
क्यों नहीं यह सिर्फ एक सरल जार हो सकता है?
क्योंकि अधिकांश ओपनसीवी C
प्रोग्रामिंग भाषा में लिखा गया है।और जिस जार फ़ाइल का आप उपयोग कर रहे हैं वह उस सी दुनिया में सिर्फ एक खिड़की है। तो यह एक रॉब गोल्डबर्ग मशीन है। आप वास्तविक काम की दुनिया में इस जगह की सभी चीजें देखेंगे, इसलिए ध्यान दें, आपको यहां शिक्षा मिल रही है।
स्रोत
2015-03-17 00:57:50
क्या आप कुछ कोड जोड़ सकते हैं जहां आप जावा में ओपनसीवी libs को एकीकृत करते हैं? ऐसा लगता है कि क्लासलोडर लाइब्रेरी नहीं ढूंढ सकता है। – Fildor
रन कॉन्फ़िगरेशन में, मैंने '-Djava.library.path = C: \ opencvFinal' तर्क जोड़ा है। जावा बिल्ड पथ में भी मैंने बाहरी क्लास फ़ोल्डर जोड़ा है जो 'सी: \ opencvFinal \ bin' है, जहां सभी opencv dlls सहेजे जाते हैं। और जब मैं 'System.loadLibrary ("opencv_java") को कॉल कर रहा हूं;' यह मुझे अपवाद देता है। – andriy
रुको, क्या आपके पास डीएलएस है, केवल? आपको जो जरूरी है वह एक जार है जो उन डीएलएस को लपेटता है। या आपको [jni] (http://en.wikipedia.org/wiki/Java_Native_Interface#How_the_JNI_works) का उपयोग करके स्वयं को लपेटने की आवश्यकता है। – Fildor