问题描述

项目目录、代码、输出如图所示:
在这里插入图片描述
在使用MainFrame.class.getResource("")获取URL对象时,可以获得。
MainFrame.class.getResource("icon.png"),获得的值为null

探究

根据MainFrame.class.getResource("")的输出,找到对应目录,如图:
在这里插入图片描述
target目录下没有icon.png,说明在项目构建时,icon.png没有被打包到里面,这是maven的问题,maven默认情况下,并不会将png、xml等文件打包到target中。

问题解决

这个问题解决起来也很容易,只需要在pom文件中加入以下打包规则:

 	<build>
        <resources>
            <!-- 将图片一起打包,maven打包时会默认忽略,
            如果不写include的节点,会将src/main/java下所有内容打包,包括.java文件 -->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.png</include>
                </includes>
            </resource>
        </resources>
    </build>
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐