com.sun.imageio.plugins.jpeg.JPEGImageReader

我正在尝试将项目从 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 中声明,其中不导出它)”


慕沐林林
浏览 118回答 1
1回答

斯蒂芬大帝

至少根据您所显示的代码,您似乎根本不需要该类。JPEGImageReader.class.getResourceAsStream(..您可以使用任何Class对象,只要它位于合适的类加载上下文中即可。该getResourceAsStream方法存在于Class类中。将其替换为getClass().getResourceAsStream(..,该部分代码将正常工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java