module-info.java
एक module घोषित करें
module-info.java, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
मॉड्यूल सिस्टम
Java प्लेटफ़ॉर्म मॉड्यूल सिस्टम (JPMS), जिसे Java 9 में प्रस्तुत किया गया था, आपको पैकेजों को स्पष्ट निर्भरताओं और सीमाओं वाले नामित मॉड्यूलों में समूहित करने देता है।
इसकी घोषणा एक विशेष फ़ाइल में रहती है: module-info.java।
मॉड्यूल क्यों
मॉड्यूल से पहले, क्लासपाथ JAR पैकेजों का एक सपाट और अव्यवस्थित संग्रह था। कोई भी व्यक्ति किसी भी सार्वजनिक वर्ग तक पहुँच सकता था, और अनुपस्थित निर्भरताएँ केवल चलाने के समय सामने आती थीं।
मॉड्यूल मज़बूत एनकैप्सुलेशन और विश्वसनीय विन्यास जोड़ते हैं, जिनकी जाँच संकलन और प्रारंभ समय पर की जाती है।
module-info कहाँ रहता है
module-info.java आपके स्रोत वृक्ष के मूल में, पैकेज निर्देशिकाओं के ऊपर स्थित होता है। यह मॉड्यूल के मूल में एक module-info.class में संकलित होता है।
प्रत्येक मॉड्यूल में इसकी संख्या ठीक एक होती है।
न्यूनतम घोषणा
सबसे सरल मॉड्यूल में केवल एक नाम होता है। परंपरा के अनुसार नाम पैकेज की तरह उल्टे-DNS प्रारूप में रखे जाते हैं।
module com.example.app {
}निर्भरता घोषित करना
किसी दूसरे मॉड्यूल पर निर्भर होने के लिए requires का उपयोग करें। प्रत्येक मॉड्यूल में java.base की अंतर्निहित आवश्यकता होती है, इसलिए आपको इसे कभी घोषित नहीं करना पड़ता।
module com.example.app {
requires java.sql;
requires java.logging;
}पैकेज को उजागर करना
डिफ़ॉल्ट रूप से मॉड्यूल के पैकेज छिपे रहते हैं। किसी पैकेज के सार्वजनिक प्रकारों को अन्य मॉड्यूलों के लिए दृश्यमान बनाने हेतु exports का उपयोग करें।
module com.example.app {
exports com.example.app.api;
}सुदृढ़ एनकैप्सुलेशन
आप जिस भी पैकेज को export नहीं करते, वह बाहर से पूरी तरह अभिगम्य नहीं होता, यहाँ तक कि उसकी सार्वजनिक क्लासें भी नहीं। क्लासपाथ की दुनिया से यही सबसे बड़ा अंतर है।
आंतरिक पैकेज आंतरिक ही रहते हैं और JVM इसे लागू करता है।
मॉड्यूल के नामकरण के नियम
मॉड्यूल के नाम पैकेजों जैसे ही शाब्दिक नियमों का पालन करते हैं: बिंदुओं से अलग किए गए पहचानकर्ता। कोई स्थिर, वैश्विक रूप से अद्वितीय नाम चुनिए, क्योंकि अन्य मॉड्यूल नाम के आधार पर उस पर निर्भर करते हैं।
मॉड्यूल का नाम बदलना उसके उपभोक्ताओं के लिए असंगत बदलाव होता है।
एक अधिक पूर्ण उदाहरण
वास्तविक घोषणा में requires और exports दोनों शामिल होते हैं। यह मॉड्यूल लॉग लेखन पर निर्भर करता है और केवल अपने सार्वजनिक प्रोग्रामिंग इंटरफ़ेस वाले पैकेज को उजागर करता है।
module com.example.orders {
requires java.logging;
requires com.example.payments;
exports com.example.orders.api;
}मॉड्यूल का संकलन
आप मॉड्यूल-सचेत फ़्लैग के साथ संकलन करते हैं। --module-source-path और -d विकल्प कंपाइलर को बताते हैं कि स्रोत और आउटपुट कहाँ स्थित हैं।
javac -d out --module-source-path src $(find src -name '*.java')java --module-path out --module com.example.app/com.example.app.Main
मॉड्यूल पथ
मॉड्यूल मॉड्यूल पथ (--module-path) से हल किए जाते हैं, जो क्लासपाथ का मॉ्यूलर उत्तराधिकारी है। लॉन्चर चलाने से पहले हर मॉड्यूल की विवरणिका पढ़कर निर्भरता-आलेख बनाता है।
त्वरित जाँच
पैकेजों की डिफ़ॉल्ट दृश्यता याद कीजिए।
पुनरावृत्ति
आपने module-info.java की मूल बातें सीखीं:
- स्रोत की मूल निर्देशिका में हर मॉड्यूल के लिए एक विवरणिका
requiresनिर्भरताएँ घोषित करता है;java.baseनिहित होता हैexportsकिसी पैकेज को उजागर करता है; बाकी सब एनकैप्सुलेटेड रहता है--module-pathऔर--moduleके साथ निर्माण और संचालन
अगला विषय: requires और exports निर्देशों का गहन अध्ययन।
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 104
- पाठ
- 374
अक्सर पूछे जाने वाले प्रश्न
क्या “module-info.java” पाठ निःशुल्क है?
हाँ—“module-info.java” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“module-info.java” में मैं क्या सीखूँगा?
एक module घोषित करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“module-info.java” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।