com.sun.imageio.plugins.jpeg.JPEGImageReader 不再是 JDK-11 的一部分
com.sun.imageio.plugins.jpeg.JPEGImageReader no longer part of JDK-11
我正在尝试将一个项目从 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");
//JPEGImageReader 由于缺少从 JDK11 中删除的 jar 而完全变红
cmykProfile = ICC_Profile.getInstance(iccProfileStream);
iccProfileStream.close();
代码应该像以前在 JDK8 上那样编译,但相反,它不断弹出错误 "package com.sun.imageio.jpeg is not visible (package com.sun.imageio.plugins.jpeg is declared in module java.desktop, which does not export it )"
您似乎甚至不需要 class,至少根据您显示的代码是这样。
您可以使用任何 Class
对象来代替 JPEGImageReader.class.getResourceAsStream(..
,只要它处于合适的 class 加载上下文中即可。 getResourceAsStream
方法存在于 Class
class.
将其替换为 getClass().getResourceAsStream(..
,该部分代码将正常工作。
我正在尝试将一个项目从 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");
//JPEGImageReader 由于缺少从 JDK11 中删除的 jar 而完全变红
cmykProfile = ICC_Profile.getInstance(iccProfileStream);
iccProfileStream.close();
代码应该像以前在 JDK8 上那样编译,但相反,它不断弹出错误 "package com.sun.imageio.jpeg is not visible (package com.sun.imageio.plugins.jpeg is declared in module java.desktop, which does not export it )"
您似乎甚至不需要 class,至少根据您显示的代码是这样。
您可以使用任何 Class
对象来代替 JPEGImageReader.class.getResourceAsStream(..
,只要它处于合适的 class 加载上下文中即可。 getResourceAsStream
方法存在于 Class
class.
将其替换为 getClass().getResourceAsStream(..
,该部分代码将正常工作。