我正在嘗試將項目從 JDK8 遷移到 JDK11,問題是大多數內容不再像以前在 JDK8 中那樣屬于 JDK11。由于從 JDK11 中刪除了這些包,我必須手動添加一些單獨的 jar,但仍然存在一個問題。導入com.sun.imageio.plugins.jpeg.JPEGImageReader;不再是 JDK11 的一部分,我無法找到適當的替換或依賴項來提供給我的代碼,以便它可以像以前一樣工作。我訪問過文檔https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/package-summary.html但它們似乎不是合適的替代品InputStream iccProfileStream = JPEGImageReader.class.getResourceAsStream("/ISOcoated_v2_300_eci.icc");//由于缺少從 JDK11 中刪除的 jar,JPEGImageReader 完全呈紅色cmykProfile = ICC_Profile.getInstance(iccProfileStream);
iccProfileStream.close();代碼應該像在 JDK8 上那樣進行編譯,但它不斷彈出錯誤“包 com.sun.imageio.jpeg 不可見(包 com.sun.imageio.plugins.jpeg 在模塊 java.desktop 中聲明,其中不導出它)”
1 回答

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
至少根據您所顯示的代碼,您似乎根本不需要該類。
JPEGImageReader.class.getResourceAsStream(..
您可以使用任何Class
對象,只要它位于合適的類加載上下文中即可。該getResourceAsStream
方法存在于Class
類中。
將其替換為getClass().getResourceAsStream(..
,該部分代碼將正常工作。
添加回答
舉報
0/150
提交
取消