JLink एक नया लिंकर टूल है जिसका उपयोग हम अपना खुद का कस्टमाइज्ड JRE बनाने के लिए करते हैं। आमतौर पर, हम Oracle द्वारा प्रदान किए गए डिफ़ॉल्ट JRE का उपयोग करके अपना प्रोग्राम चलाते हैं। यदि हमें अपना खुद का JRE बनाना है तो इस टूल का उपयोग करें। JLink टूल केवल आवश्यक क्लास के साथ अपना JRE बनाने में मदद करता है ताकि एप्लिकेशन चल सके। यह विकसित API के आकार को कम कर सकता है और पूर्ण JRE का उपयोग करने की निर्भरता को कम कर सकता है।
जावा 9 में, कोड को कंपाइल करने और उसके निष्पादन के बीच एक नया चरण है जिसे लिंक टाइम कहा जाता है। लिंक टाइम कंपाइल-टाइम और रनटाइम के बीच का एक वैकल्पिक चरण है।
कस्टम JRE बनाने की कमांड
jlink --module-path --add-modules --limit-modules --output
- module-path वह पथ है जहां लिंकर द्वारा ऑब्जर्वेबल मॉड्यूल खोजे गए हैं। यह मॉड्यूलर JAR फ़ाइलें, JMOD फ़ाइलें और मॉड्यूल हो सकते हैं।
- add-modules रन-टाइम इमेज में जोड़ने के लिए मॉड्यूल के नाम बताता है, ये मॉड्यूल ट्रांजिटिव निर्भरताओं के माध्यम से अतिरिक्त मॉड्यूल जोड़ सकते हैं।
- limit-modules ऑब्जर्वेबल मॉड्यूल के यूनिवर्स को सीमित करता है।
- output वह डायरेक्टरी है जिसमें परिणामी रन-टाइम इमेज होती है।
उदाहरण कमांड
jlink --module-path $JAVA_HOME/jmods:mlib --add-modules com.greetings --output greetingsapp
उपरोक्त कमांड में, module-path का मान पैकेज्ड मॉड्यूल वाली डायरेक्टरी का PATH है। JAVA_HOME/jmods एक डायरेक्टरी है जिसमें java.base.jmod, अन्य मानक और JDK मॉड्यूल होते हैं। मॉड्यूल पथ पर mlib डायरेक्टरी में मॉड्यूल com.greetings के लिए आर्टिफैक्ट होता है।