एक मॉड्यूल पैकेजों का एक कंटेनर है और प्रत्येक मॉड्यूल में एक मॉड्यूल डिस्क्रिप्टर होता है जिसमें मॉड्यूल . शामिल होता है नाम , मॉड्यूल निर्भरताएं, इसका मतलब है कि अन्य मॉड्यूल का नाम इस पर निर्भर करता है और उन पैकेजों का नाम जो निर्यात करता है जिनका उपयोग केवल उस पर निर्भर मॉड्यूल द्वारा किया जा सकता है।
module com.tutorialspoint.app { /** Modules upon which the module com.tutorialspoint.app depends on */ requires com.tutorialspoint.services; /** Packages exposed by this module which can be used by other modules */ exports com.tutorialspoint.app.util; }
Java 9 मॉड्यूल द्वारा प्रदान किए गए तीन अलग-अलग संकलन मोड हैं:लीगेसी मोड, सिंगल मॉड्यूल मोड और मल्टी-मॉड्यूल मोड।
मॉड्यूल के संकलन मोड:
- विरासत मोड :इसे तब सक्षम किया जा सकता है जब --source . द्वारा परिभाषित संकलन वातावरण , --लक्ष्य, और --रिलीज़ विकल्प 8 . से कम या उसके बराबर है . कंपाइलर वैसे ही व्यवहार करता है जैसे वह Java 8 . में करता है (या पहले) जहां हम पारंपरिक विकल्पों का उपयोग कर सकते हैं (classpath , आदि) मॉड्यूल से संबंधित किसी भी विकल्प के बजाय (--module-path ) इस मोड में, हमारा कोड अनाम . के रूप में चलता है मॉड्यूल रनटाइम के दौरान।
- एकल मॉड्यूल मोड :इसे तब सक्षम किया जा सकता है जब संकलन वातावरण 9 . हो या बाद में और --मॉड्यूल-स्रोत-पथ विकल्प का उपयोग नहीं किया जाता है। इस मोड में, कोड को एक पारंपरिक पैकेज पदानुक्रमित निर्देशिका ट्री में संरचित किया गया है। कोड में एक मॉड्यूल-info.java है फ़ाइल और क्लासपाथ के बजाय मॉड्यूलपथ पर चलता है। इस संरचना में, हम अपनी मॉड्यूल-info.java फ़ाइल को सीधे src निर्देशिका के अंतर्गत रख सकते हैं। हमारे पास एक ही निर्देशिका ट्री में एकाधिक मॉड्यूल-info.java फ़ाइलें नहीं हो सकती हैं, इसलिए इसे एकल कहा जाता है मॉड्यूल मोड ।
- मल्टी-मॉड्यूल मोड :इसे तब सक्षम किया जा सकता है जब संकलन परिवेश 9 . हो या बाद में और --मॉड्यूल-स्रोत-पथ विकल्प का प्रयोग किया जाता है। इस मोड में, हम एक ही स्रोत निर्देशिका के अंतर्गत कई मॉड्यूल रखते हैं। संकलन-समय के दौरान, मुख्य स्रोत निर्देशिका को --module-source-path के साथ निर्दिष्ट किया जा सकता है विकल्प। प्रत्येक मॉड्यूल के लिए स्रोत ट्री को मुख्य स्रोत निर्देशिका के अंतर्गत अपनी उपनिर्देशिका में रखा जा सकता है।