एक मॉड्यूल पैकेज . में आयोजित कक्षाओं के रूप में कोड का एक संग्रह है और स्थिर संसाधन जैसे संपत्ति फ़ाइलें या अन्य। यह बाहरी वातावरण को उन सभी सूचनाओं के साथ प्रदान करता है जो उस मॉड्यूल का उपयोग करने के लिए आवश्यक हो सकती हैं। मॉड्यूल विवरणकर्ता मॉड्यूल . का एक प्रमुख स्रोत है सिस्टम, और यह "module-info.java नाम की फ़ाइल में निर्दिष्ट मॉड्यूल घोषणा का संकलित संस्करण है। " मॉड्यूल की निर्देशिका पदानुक्रम के मूल में फ़ाइल।
मॉड्यूल स्वयं को मॉड्यूल घोषणा द्वारा नीचे वर्णित करता है
module com.myproject.module1 { requires com.myproject.module2; exports com.myproject.project1; exports com.myproject.project2; }
नीचे वर्णित कुछ मॉड्यूल डिस्क्रिप्टर हैं:
- मॉड्यूल मॉड्यूल। नाम: मॉड्यूल.नाम नामक एक मॉड्यूल की घोषणा करता है।
- मॉड्यूल की आवश्यकता है। नाम: निर्दिष्ट करता है कि हमारा मॉड्यूल मॉड्यूल पर निर्भर करता है। नाम, इस मॉड्यूल को लक्ष्य मॉड्यूल में निर्यात किए गए सार्वजनिक प्रकारों तक पहुंचने की अनुमति देता है।
- एक ट्रांजिटिव मॉड्यूल की आवश्यकता है। नाम: इस मॉड्यूल पर निर्भर कोई भी मॉड्यूल स्वचालित रूप से मॉड्यूल.नाम पर निर्भर करता है।
- निर्यात pkg.name: यह कहता है कि हमारा मॉड्यूल सार्वजनिक सदस्यों को pkg.name . पैकेज में निर्यात करता है इसकी आवश्यकता वाले प्रत्येक मॉड्यूल के लिए।
- pkg.name को मॉड्यूल.नाम में निर्यात करता है: यह ऊपर जैसा ही है, लेकिन यह सीमित करता है कि कौन से मॉड्यूल सार्वजनिक सदस्यों को पैकेज pkg.name से उपयोग कर सकते हैं।
- कक्षा का उपयोग करता है। नाम: यह वर्तमान मॉड्यूल को सेवा वर्ग.नाम के लिए एक उपभोक्ता बनाता है।
- class.name के साथ class.name.impl प्रदान करता है: यह class.name.impl वर्ग को एक सेवा पंजीकृत करता है जो class.name सेवा का कार्यान्वयन प्रदान करती है।
- pkg.name खोलता है: यह अन्य मॉड्यूल को पैकेज pkg.name के निजी सदस्यों तक पहुंचने के लिए प्रतिबिंब का उपयोग करने की अनुमति देता है।
- pkg.name को मॉड्यूल.नाम में खोलता है: यह वही करता है, लेकिन यह सीमित करता है कि कौन से मॉड्यूल pkg.name में निजी सदस्यों के लिए प्रतिबिंब पहुंच प्राप्त कर सकते हैं।