मॉड्यूल निर्भरता एक मॉड्यूल पर निर्भर होने या दूसरे मॉड्यूल की आवश्यकता को संदर्भित करता है। मॉड्यूल निर्भरता अन्य मॉड्यूल पर निर्भरता की घोषणा . में पेश की गई थी लेख में खंड "एक्लिप्स आईडीई में जावा 9 के साथ एक मॉड्यूल विकसित करना, भाग 1।" पहले दो लेखों में, "मॉड्यूल निर्भरता का उपयोग करना, भाग 1," हमने दो मॉड्यूल के लिए दो जावा प्रोजेक्ट बनाए, एक मुख्य मॉड्यूल और एक निर्भरता मॉड्यूल। हम एक जावा प्रोजेक्ट में दोनों मॉड्यूल नहीं बना सकते थे क्योंकि एक्लिप्स आईडीई एक प्रोजेक्ट में कई मॉड्यूल का समर्थन नहीं करता है। दो प्रोजेक्ट बनाने के बाद, इस निरंतरता लेख में हम प्रत्येक प्रोजेक्ट को एक अलग JAR फ़ाइल में निर्यात करेंगे। एक JAR फ़ाइल के रूप में एक मॉड्यूल को निर्यात और उपयोग करने के बारे में पहले के ट्यूटोरियल में चर्चा की गई है, "JAR फ़ाइल के रूप में Java 9 मॉड्यूल का उपयोग करना।" एक जार में एकाधिक मॉड्यूल जोड़ना वर्तमान में समर्थित नहीं है, लेकिन भविष्य के जावा संस्करण के लिए योजना बनाई गई है। इस लेख में, हम दो जावा परियोजनाओं को कॉन्फ़िगर करने और मॉड्यूल निर्भरता को प्रदर्शित करने के लिए मुख्य मॉड्यूल एप्लिकेशन चलाने पर चर्चा करेंगे। इस लेख में निम्नलिखित भाग हैं:
- मुख्य जावा प्रोजेक्ट का बिल्ड पथ सेट करना
- मुख्य जावा प्रोजेक्ट को एक JAR फ़ाइल में निर्यात करना
- निर्भरता जावा प्रोजेक्ट को JAR फ़ाइल में निर्यात करना
- रन कॉन्फ़िगरेशन जोड़ना
- मुख्य मॉड्यूल जावा एप्लिकेशन चलाना
- निष्कर्ष
मुख्य जावा प्रोजेक्ट का बिल्ड पथ सेट करना
पहले विकसित की गई दो जावा परियोजनाओं में त्रुटियां हैं, जैसा कि चित्र 1 में लाल मार्करों द्वारा दर्शाया गया है। त्रुटियां इंगित की गई हैं क्योंकि दो मॉड्यूल अलग-अलग परियोजनाओं में परिभाषित हैं और निर्भरता परियोजना मुख्य परियोजना के निर्माण पथ में नहीं है।
चित्र 1: जावा प्रोजेक्ट त्रुटियों के साथ
इस खंड में, हम MainModule . के लिए बिल्ड पथ को कॉन्फ़िगर करेंगे HelloJavaModule . जोड़ने के लिए प्रोजेक्ट निर्माण पथ के लिए परियोजना। MainModuleराइट-क्लिक करें पैकेज एक्सप्लोरर में और पथ बनाएं>बिल्ड पथ कॉन्फ़िगर करें select चुनें , जैसा कि चित्र 2 में दिखाया गया है।
चित्र 2: पैकेज एक्सप्लोरर>बिल्ड पाथ>बिल्ड पाथ कॉन्फिगर करें
गुणों . में विंडो, जावा बिल्ड पथ डिफ़ॉल्ट सेटिंग्स प्रदर्शित होती हैं, जैसा कि चित्र 3 में दिखाया गया है।
चित्र 3: जावा बिल्ड पथ
प्रोजेक्ट . चुनें टैब करें और मॉड्यूलपथ . चुनें , जैसा चित्र 4 में दिखाया गया है। जोड़ें… . क्लिक करें
चित्र 4: जावा बिल्ड पथ>प्रोजेक्ट>मॉड्यूलपथ>जोड़ें…
आवश्यक परियोजना चयन विंडो निर्भरता परियोजना प्रदर्शित करती है HelloJavaModule , जैसा चित्र 5 में दिखाया गया है। HelloJavaModule . चुनें प्रोजेक्ट करें और ओके पर क्लिक करें।
चित्र 5: जोड़ने के लिए प्रोजेक्ट चुनना
HelloJavaModule प्रोजेक्ट मॉड्यूलपथ . में जुड़ जाता है (चित्र 6 देखें)। लागू करें और बंद करें Click क्लिक करें ।
चित्र 6: जावा प्रोजेक्ट HelloJavaModule मॉड्यूलपथ में जोड़ा गया
MainModule . से त्रुटियां और लाल निशान हटा दिए जाते हैं प्रोजेक्ट, जैसा कि चित्र 7 में दिखाया गया है।
चित्र 7: मेनमॉड्यूल से हटाई गई त्रुटियां
मुख्य जावा प्रोजेक्ट को JAR फ़ाइल में निर्यात करना
HelloJavaModule . जोड़ना MainModule . के निर्माण पथ के लिए प्रोजेक्ट प्रोजेक्ट केवल निर्माण/संकलन समय त्रुटियों को हटा देता है। रनटाइम के लिए, हमें प्रत्येक मॉड्यूल को एक JAR फ़ाइल में निर्यात करना होगा और प्रोजेक्ट चलाने के लिए JAR फ़ाइलों को रनटाइम मॉड्यूल पथ में जोड़ना होगा। JAR फ़ाइलों को उसी फ़ोल्डर में निर्यात करने की आवश्यकता होगी ताकि हम सभी परियोजनाओं में मॉड्यूल का उल्लेख किए बिना मॉड्यूल पथ को कॉन्फ़िगर करने में सक्षम हों। जैसा कि पहले उल्लेख किया गया है, एक बहु-मॉड्यूल JAR अभी तक समर्थित नहीं है, लेकिन जावा के बाद के संस्करण में समर्थित होने की योजना है।
MainModule . को निर्यात करने के लिए JAR फ़ाइल में प्रोजेक्ट करें, MainModule पर राइट-क्लिक करें पैकेज एक्सप्लोरर में और निर्यात करें . चुनें , जैसा कि चित्र 8 में दिखाया गया है।
चित्र 8: पैकेज एक्सप्लोरर>मुख्य मॉड्यूल>निर्यात करें
निर्यात . में विंडो में, Java>JAR फ़ाइल चुनें , जैसा कि चित्र 9 में दिखाया गया है, और अगला क्लिक करें।
चित्र 9: निर्यात>जावा>जार फ़ाइल>अगला
JAR फ़ाइल विशिष्टता . में , MainModule . के रूप में निर्यात करने के लिए संसाधन का चयन करें , जैसा कि चित्र 10 में दिखाया गया है। निर्यात गंतव्य को MainModulemodulesmainmodule.jar के रूप में चुनें . अगला क्लिक करें।
चित्र 10: जार फ़ाइल विशिष्टता
डिफ़ॉल्ट JAR पैकेजिंग विकल्प का चयन करें (चित्र 11 देखें) और अगला क्लिक करें।
चित्र 11: पैकेजिंग विकल्प चुनना
इसके बाद, JAR मेनिफेस्ट विशिष्टता को कस्टमाइज़ करें , जिसमें आवेदन प्रविष्टि बिंदु के वर्ग का चयन करना शामिल है। ब्राउज़ करें क्लिक करें मुख्य वर्ग . के लिए , जैसा कि चित्र 12 में दिखाया गया है।
चित्र 12: मुख्य वर्ग>ब्राउज़ करें
मुख्य कक्षा चुनें . में , MainModule . चुनें main.module . में कक्षा पैकेज, जैसा कि चित्र 13 में दिखाया गया है, और OK पर क्लिक करें।
चित्र 13: मुख्य वर्ग का चयन करना
मुख्य वर्ग . के साथ चयनित, समाप्त क्लिक करें, जैसा कि चित्र 14 में दिखाया गया है।
चित्र 14: जार निर्यात>समाप्त करें
mainmodule.jar MainModule/modules . को निर्यात किया जाता है निर्देशिका, जैसा कि चित्र 15 में पैकेज एक्सप्लोरर में दिखाया गया है।
चित्र 15: निर्यात किया गया जार mainmodule.jar
निर्भरता जावा प्रोजेक्ट को JAR फ़ाइल में निर्यात करना
इस खंड में, हम निर्भरता परियोजना का निर्यात करेंगे HelloJavaModule उसी निर्देशिका में एक JAR फ़ाइल के लिए मुख्य मॉड्यूल JAR को निर्यात किया जाता है। HelloJavaModule . को निर्यात करने के लिए JAR फ़ाइल में प्रोजेक्ट करें, पैकेज एक्सप्लोरर में प्रोजेक्ट पर राइट-क्लिक करें और निर्यात करें . चुनें (चित्र 16 देखें)।
चित्र 16: पैकेज एक्सप्लोरर>HelloJavaModule>निर्यात करें
निर्यात . में विंडो में, Java>JAR फ़ाइल चुनें , जैसा कि चित्र 17 में दिखाया गया है, और अगला क्लिक करें।
चित्र 17: निर्यात>जावा>जार फ़ाइल>अगला
JAR फ़ाइल विशिष्टता . में , HelloJavaModule . के रूप में निर्यात करने के लिए संसाधन का चयन करें , जैसा कि चित्र 18 में दिखाया गया है। निर्यात गंतव्य को मुख्य मॉड्यूल JAR के समान चुनें, जो कि MainModulemodules है। निर्देशिका। JAR फ़ाइल का नाम अलग होना चाहिए और वह है helloJavaModule.jar . अगला क्लिक करें।
चित्र 18: निर्भरता जार के लिए जार फ़ाइल विशिष्टता
डिफ़ॉल्ट JAR पैकेजिंग विकल्प चुनें, जैसा कि चित्र 19 में दिखाया गया है, और अगला क्लिक करें।
चित्र 19: पैकेजिंग विकल्प चुनना
इसके बाद, JAR मेनिफेस्ट विशिष्टता को अनुकूलित करें। चूंकि डिपेंडेंसी प्रोजेक्ट में एप्लिकेशन एंट्री पॉइंट के लिए क्लास शामिल नहीं है, इसलिए मुख्य क्लास . रखें फ़ील्ड खाली के रूप में, जैसा कि चित्र 20 में दिखाया गया है, और समाप्त पर क्लिक करें।
चित्र 20: निर्भरता परियोजना के लिए कोई मुख्य वर्ग नहीं
helloJavaModule.jar MainModule/modules . को निर्यात किया जाता है निर्देशिका, जैसा कि चित्र 21 में पैकेज एक्सप्लोरर में दिखाया गया है।
चित्र 21: निर्यात किया गया JAR helloJavaModule.jar
रन कॉन्फ़िगरेशन जोड़ना
मुख्य मॉड्यूल जावा एप्लिकेशन को चलाने के लिए, हमें MainModule के लिए एक रन कॉन्फ़िगरेशन बनाने की आवश्यकता है परियोजना। मेनमॉड्यूल पर राइट-क्लिक करें पैकेज एक्सप्लोरर में और गुणों . का चयन करें , जैसा कि चित्र 22 में दिखाया गया है।
चित्र 22: पैकेज एक्सप्लोरर>मेनमॉड्यूल>प्रॉपर्टीज
गुण विंडो में, सेटिंग चलाएँ/डीबग करें . चुनें और नया… . क्लिक करें एक नया लॉन्च कॉन्फ़िगरेशन बनाने के लिए, जैसा कि चित्र 23 में दिखाया गया है।
चित्र 23: गुण>डिबग सेटिंग चलाएँ>नया…
कॉन्फ़िगरेशन प्रकार चुनें . में , जावा एप्लिकेशन . चुनें , जैसा कि चित्र 24 में दिखाया गया है।
चित्र 24: जावा एप्लिकेशन के रूप में कॉन्फ़िगरेशन प्रकार का चयन करना
कॉन्फ़िगरेशन विज़ार्ड में, एक नाम निर्दिष्ट करें (MainModuleConfig ) नाम . में फ़ील्ड और प्रोजेक्ट के साथ MainModule . के रूप में चयनित खोजें… . क्लिक करें मुख्य वर्ग . के लिए , जैसा कि चित्र 25 में दिखाया गया है।
चित्र 25: लॉन्च कॉन्फ़िगरेशन गुण सेट करना
मुख्य प्रकार चुनें . में , main.module.MainModule . चुनें टाइप करें (चित्र 26 देखें) और ओके पर क्लिक करें।
चित्र 26: मुख्य प्रकार का चयन करना
मुख्य वर्ग . के साथ चयनित, तर्क . पर क्लिक करें VM args अगला चुनने के लिए टैब, जैसा कि चित्र 27 में दिखाया गया है।
चित्र 27: तर्क टैब का चयन करना
VM तर्क फ़ील्ड में निम्न VM तर्क जोड़ें, जैसा कि चित्र 28 में दिखाया गया है।
--module-path modules/helloJavaModule.jar;modules/mainmodule.jar -m mainModule/main.module.MainModule
--मॉड्यूल-पथ arg दो मॉड्यूल के लिए दो JAR के लिए मॉड्यूल पथ सेट करता है। -m arg मॉड्यूल सेट करता है। लागू करें Click क्लिक करें , जैसा कि चित्र 28 में दिखाया गया है।
चित्र 28: रन कॉन्फ़िगरेशन सेटिंग लागू करना
ठीक क्लिक करें, जैसा कि चित्र 29 में दिखाया गया है, रन कॉन्फ़िगरेशन को पूरा करने के लिए।
चित्र 29: रन कॉन्फ़िगरेशन पूरा करना
एक नया रन कॉन्फ़िगरेशन, MainModuleConfig , बन जाता है, जैसा कि चित्र 30 में दिखाया गया है। लागू करें और बंद करें पर क्लिक करें गुण विंडो में।
चित्र 30: MainModule प्रोजेक्ट के लिए गुण लागू करना
मुख्य मॉड्यूल जावा एप्लिकेशन चलाना
अगला, हम परीक्षण करेंगे कि क्या मुख्य मॉड्यूल मुख्य मॉड्यूल एप्लिकेशन को चलाकर निर्भरता मॉड्यूल को आमंत्रित करता है। MainModule.java पर राइट-क्लिक करें पैकेज एक्सप्लोरर में और इस रूप में चलाएं>जावा एप्लिकेशन का चयन करें (चित्र 31 देखें)।
चित्र 31: पैकेज एक्सप्लोरर>मेनमॉड्यूल>जावा एप्लिकेशन के रूप में चलाएं
Java एप्लिकेशन से आउटपुट Console . में प्रदर्शित होता है , जैसा कि चित्र 32 में दिखाया गया है। मुख्य मॉड्यूल से "हैलो फ्रॉम" संदेश को "निर्यात जावा मॉड्यूल!" संदेश के साथ जोड़ा गया है। डिपेंडेंसी मॉड्यूल से "हैलो फ्रॉम एक्सपोर्टेड जावा मॉड्यूल!" संदेश आउटपुट करने के लिए।
चित्र 32: कंसोल आउटपुट
निष्कर्ष
दो लेखों में, हमने जावा 9 में मॉड्यूल निर्भरता का उपयोग करने पर चर्चा की।