मैं जावा 9 के साथ चलाने के लिए अपना आवेदन प्राप्त करने की कोशिश कर रहा हूं, लेकिन दुर्भाग्यवश सादा जार निर्भरताओं में से एक, जब यहका उपयोग करके संसाधन लोड करने का प्रयास करता है, तो इसके बजाय शून्य हो जाता है।जावा 9 में स्वचालित मॉड्यूल को अपने संसाधनों को कैसे ढूंढने दें?
यह, ज़ाहिर है, जावा 8.
में काम करता है मैं प्रश्न में मॉड्यूल मॉड्यूल फ़ाइल का उपयोग पर निर्भरता की घोषणा की, इसके जार का नाम (भयंकर) द्वारा मॉड्यूल के नाम की चर्चा करते हुए, और कहा --module-path
विकल्प का उपयोग कर जार एएस-है (जावा 9 के लिए कोई अनुकूलन नहीं)।
यहाँ मेरी अनुमानित मॉड्यूल फ़ाइल घोषणा है:
module my.mod {
requires ivy; // the file is called ivy-2.4.0.jar
}
और मैं इस आदेश के साथ चलाएँ:
java --module-path my-mod.jar:ivy-2.4.0.jar -m my.mod
जब मैं आवेदन चलाने के लिए, यह ठीक काम करता है, तो पुस्तकालय करने की कोशिश नहीं कर रहा है उस संसाधन को लोड करें ... लेकिन यदि ऐसा होता है, तो यह उस संसाधन पर NullPointerException
प्राप्त करता है जो संसाधन का उपयोग करने का प्रयास करता है।
मैं देख सकता हूं कि संसाधन जार फ़ाइल में सही पथ में मौजूद है।
मैं दोनों के रूप में एक जार (ऊपर दिखाया गया है) और बस वर्ग फाइलों के साथ अपने आवेदन चल रहा है की कोशिश की है:
java --module-path modules-dir:ivy-2.4.0.jar -m my.module/my.Main
उत्तरार्द्ध मामले में, त्रुटि अलग है, लेकिन संबंधित है: आइवी नहीं कर सकते यहां तक कि एक प्रॉपर्टी फ़ाइल भी ढूंढें जो इसे अपने जार से लोड करने का प्रयास करती है!
क्या कोई कामकाज है, क्या यह ज्ञात बग है, या क्या मैं कुछ गलत कर रहा हूं?
आपको जावा 9 कहां मिला? क्या इसे जारी किया गया है? 2017 06 15 –
[एसडीकेएमएएन] प्राप्त करें (http://sdkman.io/) और 'sdk install java 9ea167' के साथ स्थापित करें। यह एक ईए (प्रारंभिक पहुंच) संस्करण है। – Renato
बस सवाल नहीं मिल सका, my.mod मॉड्यूल फ़ाइल के साथ my-mod.jar का रिश्ता क्या है? क्या आप चाहते हैं कि मेरा-mod.jar आईवी-2.4.0.jar पर निर्भर करे? – chebus