मॉड्यूल कोड और डेटा का एक नामित, स्व-वर्णन करने वाला संग्रह है। कोड को पैकेज के एक सेट के रूप में व्यवस्थित किया गया है जिसमें जावा क्लास और इंटरफेस जैसे प्रकार शामिल हैं। डेटा में संसाधन और अन्य प्रकार की स्थिर जानकारी शामिल है। हमें एक मॉड्यूल घोषित करना होगा फिर सोर्स कोड के रूट पर module-info.java जोड़ना होगा।
नीचे "module-info.java" फाइल का टेम्पलेट है।
module <module-name> {
requires <module-name1>;
requires <module-name2>;
exports <package-name1>;
exports <package-name2>;
exports <package-name> to <module-name>
}
हम कुछ कमांड-लाइन विकल्पों का उपयोग कर सकते हैं जो हमें मौजूदा मॉड्यूल को संशोधित करने और उनमें डिपेंडेंसी जोड़ने, अतिरिक्त पैकेज एक्सपोर्ट करने में मदद करते हैं।
नीचे कुछ कमांड-लाइन कमांड हैं जिनका उपयोग मौजूदा मॉड्यूल को संशोधित करने के लिए किया जा सकता है।
1) --add-reads <module>=<target-module>(,<target-module>)*
उपरोक्त कमांड मॉड्यूल घोषणा की परवाह किए बिना <module> को <target-module> पढ़ने के लिए अपडेट कर सकता है। <target-module> सभी नामहीन मॉड्यूल पढ़ने के लिए ALL-UNNAMED हो सकता है।
2) --add-exports <module>/<package>=<target-module>(,<target-module>)*
उपरोक्त कमांड मॉड्यूल घोषणा की परवाह किए बिना <module> को <package> को <target-module> एक्सपोर्ट करने के लिए अपडेट कर सकता है। <target-module> सभी नामहीन मॉड्यूल को एक्सपोर्ट करने के लिए ALL-UNNAMED हो सकता है।
3) --add-opens <module>/<package>=<target-module>(,<target-module>)*
उपरोक्त कमांड मॉड्यूल घोषणा की परवाह किए बिना <module> को <package> को <target-module> खोलने के लिए अपडेट करता है।
4) --patch-module <module>=<file>(;<file>)*
उपरोक्त कमांड jar फाइल्स या डायरेक्टरीज में क्लासेज और संसाधनों के साथ एक मॉड्यूल को प्रतिस्थापित या बढ़ा सकता है।