URLImageSource 失败 Java 10 但不是 Java 8

URLImageSource is failing with Java 10 but not Java 8

我的 Java 应用程序在 Java 8 上运行良好,但现在在 Java 10 上由于这条线

而失败
setIconImage(Toolkit.getDefaultToolkit().createImage(Icon.class.getResource("/icon/songkong20.png")));

引用的图片存在,使用时显示 Java 8.

这导致了这个异常

java.lang.NullPointerException
    at java.desktop/sun.awt.image.URLImageSource.getConnection(URLImageSource.java:101)
    at java.desktop/sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:111)
    at java.desktop/sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
    at java.desktop/sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:212)
    at java.desktop/sun.awt.image.ImageFetcher.run(ImageFetcher.java:176)

问题是我为模块中的文件调用了 getResource(),但在系统 class (Icon.class) 上调用了它,这在 Java 中是不允许的9 起。

改变

Icon.class.getResource("/icon/songkong20.png")));

SongKong.class.getResource("/icon/songkong20.png")));

已解决问题。