我最近将一个项目从我垂死的笔记本电脑转移到了健康的台式计算机上。无需更改代码或maven依赖项,ImageIO.read()突然抛出一个我从未见过的异常:
Exception in thread "main" java.util.ServiceConfigurationError: javax.imageio.spi.ImageReaderSpi: Provider com.twelvemonkeys.imageio.plugins.jpeg.JPEGImageReaderSpi not found
at java.util.ServiceLoader.fail(ServiceLoader.java:239)
at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(IIORegistry.java:210)
at javax.imageio.spi.IIORegistry.<init>(IIORegistry.java:138)
at javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:159)
at javax.imageio.ImageIO.<clinit>(ImageIO.java:66)
at finalProduct.ColorScales.<init>(Unknown Source)
at finalProduct.ColorScales.main(Unknown Source)
项目构建合规性设置为Java 1.5导入后。这可能与问题有关吗?
编辑:显示相关代码:
public class ColorScales extends JFrame {
/**
*
*/
private static final long serialVersionUID = 3157452024224477459L;
public ColorScales() {
this.setVisible(true);
this.setSize(800, 700);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Program Color Scales");
try {
this.setIconImage(ImageIO.read(new MostRecentData().getClass().getResource("res\\programicon4.png")));
} catch (IOException e) {
e.printStackTrace();
}
this.setVisible(false);
this.setVisible(true);
}}
错误实际上是在读取“ this.setIconImage(ImageIO.read(...));”的行上。