2017-06-02 24 views
7

आगामी जावा 9 में, गतिशील रूप से यह पता लगाने का कोई तरीका है कि कौन से मॉड्यूल उपलब्ध हैं?क्या जेडीके 9 में गतिशील मॉड्यूल की खोज है?

उदाहरण के लिए: कुछ मॉड्यूल पथ

  • एप्लिकेशन चल रहा है जबकि साथ

    1. भागो कुछ अनुप्रयोग, मॉड्यूल रास्ते में कुछ अधिक मॉड्यूल जोड़ने के भीतर (उदाहरण के लिए मॉड्यूल निर्देशिका में कॉपी)
    2. से ऐप, क्वेरी "मुझे सभी उपलब्ध मॉड्यूल दें" (शायद एक फ़िल्टर के साथ, जैसे कि एक ही सेवा के वैकल्पिक कार्यान्वयन प्रदान करने वाले)

    मैं दस्तावेज़ीकरण से काफी कुछ नहीं बता सकता।

  • उत्तर

    6

    मुझे नहीं लगता कि ऐसी गतिशील कार्यक्षमता समर्थित है। वर्तमान में, documentation of ModuleFinder.findAll() राज्यों:

    एक ModuleFinder मॉड्यूल है कि यह स्थित का एक सुसंगत दृश्य प्रदान करता है। यदि कई बार बुलाया जाता है तो यह हर बार समान (बराबर) परिणाम लौटाएगा।

    5

    यह निर्भर करता है जो लंबाई तुम जाओ करने को तैयार हैं करने के लिए ...

    डिफ़ॉल्ट रूप से मॉड्यूल प्रणाली उपयोगकर्ता कोड से काफी अच्छी तरह से छिपा हुआ है और वहाँ दिए गए आदेश पुनर्मूल्यांकन के लिए मॉड्यूल प्रणाली बताने के लिए कोई एपीआई है रेखा (उदाहरण के लिए --module-path, --add-exports, ...)। तो तत्काल उत्तर "नहीं है, आप मॉड्यूल पथ को संशोधित करके ऐप को नहीं बदल सकते हैं।"

    हालांकि, आप क्या कर सकते हैं, एक नई परत बना रही है, जिसमें एक बिल्कुल नया मॉड्यूल ग्राफ है। जेवीएम लॉन्च करते समय, यह कमांड लाइन फ्लैग और मॉड्यूल पथ सामग्री से एक परत बनाएगा। मौजूदा एपीआई के साथ, आप उसके ऊपर नई परतें बना सकते हैं।

    परतों के बारे में जानने के लिए, The State of the Module System और the Javadoc for ModuleLayer पर एक नज़र डालें।

    संबंधित मुद्दे