ImageIcon ic_alert = new ImageIcon(MainUI.class.getResource("/icon/alert.png"));

这里在src/main目录下/icon/alert.png是显然存在的,Eclipse下也能正常运行。

IDEA项目编译出的字节码存在了target目录下,大家可以看到编译后的文件目录除了java文件编译出的.class,其他的都没有,包括.png等等,这是因为maven打包时没有将这部分资源文件包含进去。

只要在pom.xml中配置以下以过滤文件编译即可。

<!--文件过滤-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.jpg</include>>
                    <include>**/*.png</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xls</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

如果问题不出在这里。

参考https://blog.csdn.net/Z0157/article/details/81113913