2017-01-04 5 views
6

में सूरज की सभी कक्षाओं को कैसे प्राप्त करूं। मेरे पास मेरा पुराना कोडबेस है जो वर्तमान में java8 का उपयोग करता है।मैं jdk9

मैं jdk9-ea का उपयोग करने के लिए अपने कोडबेस को माइग्रेट कर रहा हूं। लेकिन ऐसा लगता है कि सब sun.font कक्षाएं अब जिस तरह से वे पहले

error: package sun.font does not exist 

अधिक विशेष रूप से मैं उपयोग कर रहा हूँ

  • CompositeFont
  • Font2D
  • FontDesignMetrics
  • हुआ करता था की तरह उपलब्ध नहीं हैं
  • FontManager
  • FontManagerFactory
  • SunFontManager

और अधिक ..

+6

आप नहीं करते हैं। जवाडोक में कम से कम 20 वर्षों तक 'सूर्य' * कक्षाओं का उपयोग न करने के बारे में चेतावनी दी गई है। कोड को ठीक करें। – EJP

उत्तर

8

मॉड्यूल प्रणाली की एक विशेषता यह है कि यह पुस्तकालय डेवलपर्स दृढ़ता से नई accessibility rules की वजह से कार्यान्वयन विवरण संपुटित करने की अनुमति देता है। संक्षेप में, sun.* और com.sun.* पैकेजों में अधिकांश प्रकार अब उपलब्ध नहीं होंगे। यह सूर्य के साथ है और बाद में ओरेकल ने कहा है कि ये पैकेज सार्वजनिक खपत के लिए नहीं हैं।

का संभावित हल आदेश पंक्ति फ्लैग के साथ संकलन में इन पैकेजों निर्यात और समय शुरू करने के लिए है:

--add-exports java.desktop/sun.font=ALL-UNNAMED 

यह unnamed module, सहित सभी मॉड्यूल के लिए मॉड्यूल से पैकेज sun.font निर्यात java.desktop जो वह वर्ग है जो वर्ग पथ पर सभी वर्गों को एकत्र करता है।