2017-07-31 25 views
5

में नहीं है मेरे पास एक प्रोजेक्ट है जो जावा वेबस्टार्ट तकनीक का उपयोग करता है। मैं 9 8 से जावा संस्करण को अपग्रेड करने के लिए हालांकि फैसला किया, मैं संकलन पर निम्न त्रुटि का सामना करना पड़ा:पैकेज javax.jnlp मॉड्यूल java.jnlp में घोषित किया गया है, जो मॉड्यूल ग्राफ

error: package javax.jnlp is not visible 
import javax.jnlp.DownloadServiceListener; 
     ^
(package javax.jnlp is declared in module java.jnlp, which is not in the module graph) 

मैं classpath को C:\Program Files\Java\jdk-9\lib\javaws.jar शामिल करने की कोशिश की, लेकिन अभी भी एक ही मुद्दा बना हुआ है।

+0

क्या आपने अपनी 'मॉड्यूल-info.java'' में 'javaws की आवश्यकता है' जोड़ दिया था? यदि ऐसा है तो आप बिल्ड संस्करण और अपनी मॉड्यूल-info.java फ़ाइल को जोड़ सकते हैं। – nullpointer

+1

@nullpointer मैं 'मॉड्यूल-info.java' का उपयोग नहीं कर रहा था। सभी अन्य पैकेजों को 'जावा' को छोड़कर डिफ़ॉल्ट रूप से शामिल किया गया था। मुझे लगता है कि इसके पीछे कारण @ निकोलई ने अपने जवाब में बताया। वैसे भी, समस्या मॉड्यूल का उपयोग करके हल किया गया है। धन्यवाद –

उत्तर

6

ऐसा लगता है कि java.jnlp क्लास पथ पर कोड के लिए डिफ़ॉल्ट रूप से हल नहीं किया गया है (Java EE modules की तरह)। समाधान इसे --add-modules java.jnlp (javac और java दोनों पैरामीटर स्वीकार करता है) के साथ स्पष्ट रूप से जोड़ना है।

+3

निकोलई सही है, जेईपी 261 के "रूट मॉड्यूल" खंड में अधिक जानकारी है। मूल प्रश्न में lib/javaws.jar का भी उल्लेख किया गया है - जेएआर 8 या पुरानी रिलीज जेडीके 9 में तैनाती बिट्स का उपयोग करते समय जेएआर फ़ाइल का उपयोग किया जाता है, यह नहीं है वर्ग पथ पर इस्तेमाल करने का इरादा है। –

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