2012-07-12 16 views
11

मुझे एक्लिप्स और विंडोज एक्सपी का उपयोग कर जावा के साथ ज़ीरोएमक्यू चलाने में कोई समस्या है। मैंने सफलतापूर्वक स्थापित किया है [मुझे लगता है] 0 एमक्यू पुस्तकालयों के साथ-साथ जावा बाइंडिंग भी। निर्देश जो मैं करता था here स्थित हैं।जावा के साथ ज़ीरोएमक्यू कैसे चलाएं?

दो फ़ाइलों निर्माण किया गया: zmq.jar और jzmq.dll। मैंने अपनी परियोजना में जार फ़ाइल रखी, जिसने कोड को संकलित करने की अनुमति दी। मैंने dll की निर्देशिका में java.library.path भी सेट किया है, मेरे प्रोजेक्ट में perf निर्देशिका जोड़ा है, और मेरे पाथ में libzmq.dll जोड़ा है। (सभी निर्देशों के अनुसार)।

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\jzmq\lib\jzmq.dll: Can't find dependent libraries

क्या अन्य पुस्तकालयों jzmq.dll पर निर्भर है:

मैं अभी भी निम्न अपवाद है कि मैं ठीक नहीं कर सकते हैं? मैंने libzmq.dll को हर जगह रखने की कोशिश की है लेकिन इससे मदद नहीं मिली है। This कोड नमूना है जो मैं काम करने की कोशिश कर रहा हूं।

धन्यवाद।

उत्तर

8

विंडोज रूट में कोई भी डीएल रखें या विंडोज सिस्टम 32 तत्काल समाधान है, यह आपको सिर्फ डेल हेल में खींचता है।

आपको क्या करना है सिस्टम पाथ में ZQM बाइनरी पथ जोड़ें।

मैं एक घंटे में एक 64 बिट ZMQ & JZMQ संकलित, और यहाँ मेरा फ़ोल्डर संरचना है:

 
c:\ZMQ\bin 
--- jzmq.dll, libzmq.dll 
c:\ZMQ\lib 
--- ZMQ.jar 

यहाँ कदम है:

  1. प्रणाली enviromennt में binray पथ जोड़ने के लिए, विस्तार चरण नियंत्रण कक्ष - सिस्टम --- अग्रिम सेटिंग्स, और पॉप-अप टैब में, 'अग्रिम' - 'पर्यावरण चर' ढूंढें --- 'सिस्टम vairiabls' में 'पथ' ढूंढें और सी जोड़ें : मूल्य में \ ZMQ \ bin

  2. एक डॉस प्रॉम्प्ट खोलें, और 'जहां jzmq.dll' टाइप करें (मुझे यकीन नहीं है कि XP ​​में कहाँ मौजूद है। Exe मौजूद है) यह पुष्टि करने के लिए कि यह अब पाथ में है या नहीं।

  3. ग्रहण शुरू करें, और अपनी प्रोजेक्ट खोलें, अपने प्रोजेक्ट नाम पर राइट क्लिक करें, और मेनू 'बिल्ड पथ - बाहरी अभिलेखागार जोड़ें' में चयन करें C: \ ZMQ \ lib \ zMQ.jar चुनें।

सब कुछ किया गया!

मेरे पीसी में, उदाहरण सही ढंग से चलता है।

+0

1) क्या कोई कारण है कि आप बाइनरी का उपयोग करने के बजाय संकलित करना चाहते हैं? – user443854

+0

कुछ खास नहीं, सिर्फ मेरे सिस्टम के कारण 64 बिट में जेडीके शामिल है, इसलिए मैं इसे बहुत शुरुआत से संकलित करना चाहता हूं। –

+1

आप अपने 64 बिट ZMQ और JZMQ संकलित करने के लिए किस विधि का उपयोग करते थे? –

1

मुझे अभी भी इस समस्या का सामना करना पड़ा है। मुझे jzmq.dll और libzmq.dll को System32 फ़ोल्डर में डालकर एक वर्कअराउंड मिला। मुझे इसे स्थायी समाधान के रूप में पसंद नहीं है, लेकिन यह इस पल के लिए काम करता है।

+0

प्रतिक्रिया के लिए धन्यवाद। मुझे केवल system32 फ़ोल्डर में libzmq.dll डालने की आवश्यकता है क्योंकि मैं ग्रहण में jzmq.dll का संदर्भ दे रहा हूं। यह काम करता है, लेकिन मुझे अभी भी एक और स्थायी समाधान की आवश्यकता है। – Noah

3

आपको lib.mibrary द्वारा इंगित स्थान पर libzmq.dll की प्रतिलिपि बनाना चाहिए।पथ और इस का उपयोग करें:

System.loadLibrary("libzmq") 

कारण यह है कि jzmq libzmq पर निर्भर करता है इसलिए libzmq पहले लोड करने के लिए है।

+0

यह सिस्टम-व्यापी पथ का उपयोग करने से वास्तव में बेहतर दृष्टिकोण है। –

संबंधित मुद्दे