जावा 9 (जेडीके -9 + 170) नए मॉड्यूल सिस्टम के कारण जावा के सभी पिछले संस्करणों के विपरीत जेडीके से सभी कक्षाओं को देखने के लिए डिफ़ॉल्ट रूप से अनुमति नहीं देता है।जावा 9 में --add-export और --add-opens के बीच क्या अंतर है?
java -jar josm.jar --add-exports java.base/sun.security.util=ALL-UNNAMED --add-exports java.base/sun.security.x509=ALL-UNNAMED
यह अच्छी तरह से JEP 261 में समझाया गया है:
इस समाधान करने के लिए, java
कमांड लाइन एक नया तर्क --add-exports
जो इस प्रकार कैप्सूलीकरण तोड़ने के लिए अनुमति देता है प्रदान करता है।
मैंने उसी वाक्यविन्यास का उपयोग कर --add-opens
के समान विकल्प के बारे में पढ़ा है, लेकिन जेईपी 261 को अभी तक इसका वर्णन करने के लिए अपडेट नहीं किया गया है (अंतिम अपडेट: 2017/03/08 13:58)।
इन दो विकल्पों के बीच क्या अंतर है?
संपादित: JEP 261 2017/09/22 पर अद्यतन किया गया है यह समझाने के लिए।
रनटाइम '-ड-ओपन' पर यह कहते हुए लायक है कि '-ड-एक्सपोर्ट' – ZhekaKozlov
दो गोलियां बताती हैं कि '-add-opens' द्वारा सुलभ किए गए प्रकार/सदस्य '- के सुपरसैट हैं - ऐड-एक्सपोर्ट्स ', इसलिए मुझे नहीं लगता कि एक दूसरे को implicates बताता है कि विवरण में कोई मूल्य जोड़ता है। – Nicolai
अब यह जेईपी 261 में समझाया गया है क्योंकि मार्क ने आज पेज को अपडेट किया है: http://openjdk.java.net/jeps/261 – vip