एक स्वचालित मॉड्यूल एक jar है जिसे हम मॉड्यूलपथ पर रखते हैं। कई पहले से मौजूद लाइब्रेरी हैं जिनका उपयोग हमारे एप्लिकेशन में किया जा सकता है, और इनमें से कई अभी तक मॉड्यूलर नहीं हैं। माइग्रेशन को सुविधाजनक बनाने के लिए, हम किसी भी लाइब्रेरी की jar फाइल को एप्लिकेशन के मॉड्यूल पथ में जोड़ सकते हैं, फिर उस jar फाइल में पैकेज का उपयोग कर सकते हैं। यह निहित रूप से एक स्वचालित मॉड्यूल बन जाता है और इसे मॉड्यूल घोषणा के requires निर्देश में निर्दिष्ट किया जा सकता है। jar का फाइलनाम इसका मॉड्यूल नाम बन जाता है जो एक वैध Java पहचानकर्ता होना चाहिए जिसका उपयोग "requires" निर्देश में किया जा सकता है।
एक स्वचालित मॉड्यूल:
- निहित रूप से सभी पैकेज टाइप्स को निर्यात करता है, इसलिए कोई भी मॉड्यूल जो स्वचालित मॉड्यूल को पढ़ सकता है (अनाम मॉड्यूल सहित) को स्वचालित मॉड्यूल पैकेज में public types तक पहुंच प्राप्त होती है।
- निहित रूप से अन्य सभी मॉड्यूल को पढ़ता है (requires), जिसमें अन्य स्वचालित मॉड्यूल और अनाम मॉड्यूल शामिल हैं, इसलिए एक स्वचालित मॉड्यूल को सिस्टम के अन्य मॉड्यूल द्वारा उजागर किए गए सभी public types तक पहुंच प्राप्त होती है।
%JAVA_HOME%\java --module-path ./libs:./libs-legacy --module app/com.app.Main
स्वचालित मॉड्यूल का नामकरण:
- एक्सटेंशन “.jar” हटा दिया जाता है।
- संस्करण संख्या हटा दी जाती है। उदाहरण के लिए: mylib-1.2.3 -> mylib
- गैर-अल्फ़ान्यूमेरिक वर्ण को पीरियड से बदल दिया जाता है।
- दोहराए जाने वाले पॉइंट को एकल पॉइंट से बदल दिया जाता है, शुरुआत और अंत में पॉइंट हटा दिए जाते हैं।