我的intellij无法找到本地.png图片。
private String craft = "craft.png";
ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));
.png与java文件位于同一目录中。我不明白为什么它不起作用。尝试使用maven构建,尝试从资源到java的交替,但仍然没有运气:(
答案 0 :(得分:3)
craft.png
必须放在src/main/resources
中,否则根据Maven规则不会将其复制到类路径中。有关详细信息,请参阅this answer。
您的代码也应更改为:
private String craft = "/craft.png";
答案 1 :(得分:1)
尝试从资源交替到java
首先,您尝试将craft.png放入src/main/resources
。这是必须根据Maven(不在src / main / java中)放置的地方。
但它没有用,因为
this.getClass().getResource("craft.png")
尝试找到相对于 this.class包的“craft.png”。如果您的 this.class 位于 foo.bar 包中,则必须将 craft.png 放入src/main/resources/foo/bar/
您还可以使用前导斜杠/
在getResource()中提供绝对路径。例如,将craft.png放入资源src/main/resources/customFolder/
下的自定义文件夹中,并使用 customFolder 前面的前导斜杠/
读取它:
this.getClass().getResource("/customFolder/craft.png")
如果你不在getResource()
方法中使用前导斜杠,那么内部类的包名前置于资源名称以使其成为绝对名称。
Class.getResource()
答案 2 :(得分:0)
转到IntelliJ偏好设置并搜索“资源模式”(或直接进入“编译器”设置)。
IntelliJ只会将某些资源复制到输出目录。确保资源模式包含* .png。
我的资源模式设置为!*。java(复制所有不是源文件的内容),这似乎工作正常(在我看来应该是默认的)。