ज़ीरोएमक्यू के जावा बाइंडिंग के एक साथी उपयोगकर्ता के रूप में, मैं सहानुभूति व्यक्त करता हूं। ज़ीरोएमक निश्चित रूप से प्रबंधन के लिए अधिक चुनौतीपूर्ण जावा निर्भरताओं में से एक है। दिल के दिल में, ज़ीरोएमक्यू देशी सी कोड है और जावा बाइंडिंग एक जेएनआई इंटरफ़ेस के आसपास कोर जेरोएमक्यू लाइब्रेरी के लिए एक (अपेक्षाकृत) हल्का वजन रैपर है और यही कारण है कि इसे तैनात करना जटिल है।
एक तरफ के रूप में - यदि ज़ीरोएमक्यू आपके आवेदन के लिए एक अच्छा मैच है, तो यह समस्या के लायक है क्योंकि वास्तव में ऐसा कुछ भी नहीं है। दुर्भाग्यवश इसका मतलब है कि आपको यह काम करने के लिए इन सभी चरणों से गुज़रना होगा ताकि आप यह तय कर सकें कि आपको वास्तव में क्या चाहिए।
जावा के लिए
ZeroMQ तीन घटकों पर आधारित है:
- libzmq - कोर ZeroMQ पुस्तकालय (DLL - किसी भी भाषा ही नहीं, जावा के लिए आवश्यक)
- jzmq - जावा बंधन के मूल भाग (DLL)
- zeromq.jar - जावा बाध्यकारी (जार के जावा भाग)
जार मैं एक और सिस्टम पर एक मशीन काम पर निर्माण होगा? मुझे इस एप्लिकेशन को पोर्टेबल होने की आवश्यकता है।
हां। जार पोर्टेबल होगा। आप इसे किसी भी मशीन पर बना सकते हैं और इसे किसी अन्य पर तैनात कर सकते हैं। हालांकि यह आसान हिस्सा है। कठिन हिस्सा विभिन्न डीएलएल बना रहा है जो आवश्यक हैं और वे पोर्टेबल नहीं हैं। मान लीजिए कि आप विंडोज, मैक और फेडोरा लिनक्स का समर्थन करना चाहते हैं। आपको विंडोज़, मैक और फेडोरा पर देशी विकास वातावरण की आवश्यकता होगी और आप जिस प्लेटफॉर्म का समर्थन करना चाहते हैं उसके लिए डीएलएल बनाएं।
मुझे यह नहीं कहने के लिए लिनक्स के बारे में पर्याप्त जानकारी नहीं है कि एक वितरण (डीएसएबी) कहलाता है कि एक डीएलएल दूसरे पर चलाएगा (डेबियन कहें)। यदि नहीं, तो आपके पास आगे काम है।
किसी भी तरह, आपका आवेदन पोर्टेबल होगा - ज़ीरोएमक्यू और जेडएमएमक्यू बड़ी संख्या में प्लेटफार्मों पर चल सकता है - लेकिन आपको यह सुनिश्चित करने के लिए अपनी तैनाती प्रक्रिया पर कड़े नियंत्रण की आवश्यकता होगी कि जब आप प्रत्येक प्लेटफॉर्म को स्थापित करते हैं, तो जार और उपयुक्त डीएलएल का सेट स्थापित है, और वे सही जगह पर स्थापित हैं।
मुझे कुछ भी इंस्टॉल करने की आवश्यकता क्यों है?
तकनीकी रूप से आप नहीं करते हैं। लेकिन मुझे लगता है कि वे make install
चरण करने की सलाह देते हैं ताकि इसमें शामिल हों और लाइब्रेरी फाइलें हों जहां कंपाइलर्स उन्हें उम्मीद करते हैं और यह भी कि जब जावा प्रोग्राम आपके प्रोग्राम को चलाने का समय हो तो उन्हें लोड कर सकता है।
यदि हां, तो मुझे अपने स्वयं के जार बनाने के लिए क्यों शुरू करने की आवश्यकता है?
मैं एक कमिटर नहीं हूं इसलिए मैं निश्चित रूप से नहीं कह सकता। मुझे उम्मीद है कि इसका हिस्सा डेवलपर दक्षता है - वे जार बनाने वाले उपयोगकर्ताओं के लिए जार बनाने की बजाय कोड में सुधार करेंगे।
अधिक महत्वपूर्ण बात यह है कि चूंकि जार पर्याप्त नहीं हैं और आपको डीएलएल का निर्माण करना है, इसलिए यह जार और डीएलएल को एक साथ बनाने के लिए और अधिक समझ में आता है। इस तरह आप निश्चित हैं कि जेएनआई रैपर में जावा रैपर वर्ग में देशी घोषणाओं से मेल खाने के लिए सी में लागू सही मूल तरीके हैं।
शुभकामनाएं। उम्मीद है की यह मदद करेगा।
धन्यवाद, Guido। इससे यह और अधिक स्पष्ट हो जाता है! –
या आप परेशानी को छोड़ सकते हैं और [jeromq] (https://github.com/zeromq/jeromq) का उपयोग कर सकते हैं जो ज़ीरोम का एक सादा जावा पोर्ट है। यह कुछ परिस्थितियों में बाइंडिंग की तुलना में [तेज़] (https://github.com/zeromq/jeromq/wiki/Perfomance) भी है – drzymala