Gradle Java项目中如何正确访问resources文件夹内的图片?
Gradle Java项目中正确访问resources目录下的图片资源
Gradle构建Java项目时,src/main/resources下的文件会被复制到编译后的classpath根目录,而非保留源码中的相对路径结构,这就是你用../../../resources/white_pawn.png找不到图片的原因。
正确的资源访问方式
以下两种方法可以可靠地加载resources中的图片:
方法一:通过当前类的getResource()获取
路径以/开头表示从classpath根目录查找,直接写resources下的文件名即可:
// 替换YourGameGUIClass为当前类的类名 private static final PieceLabel whitePawn = new PieceLabel( new ImageIcon(YourGameGUIClass.class.getResource("/white_pawn.png")), Piece.WHITE );
如果不写开头的/,会从当前类所在的包路径下查找资源,需根据实际结构调整。
方法二:通过系统类加载器的getResource()获取
直接指定classpath根目录下的资源文件名:
private static final PieceLabel whitePawn = new PieceLabel( new ImageIcon(ClassLoader.getSystemResource("white_pawn.png")), Piece.WHITE );
注意事项
- 确认
white_pawn.png确实在src/main/resources目录下,文件名(包括大小写)无拼写错误。 - 用IDE开发时,执行一次Rebuild Project确保资源被正确同步到classpath。
- 若资源放在resources的子目录(如
src/main/resources/images),路径需改为/images/white_pawn.png(对应方法一)或images/white_pawn.png(对应方法二)。
内容的提问来源于stack exchange,提问作者nortain32
相关产品推荐
相关产品推荐

