繁体   English   中英

IntelliJ IDEA中Java项目中的相对资源路径

[英]Relative resource paths in Java project in IntelliJ IDEA

我试图通过使用相对路径在我的 GUI 中显示一个图标,如“从resources/image.png图像显示图像”。 我已经尝试了一百万种不同的方式来表达这一点,但没有任何效果。 这让我觉得这是我的 IntelliJ IDEA 设置或项目结构的问题。 我已将“资源”文件夹设置为“资源文件夹”。 我不知道它还希望我做什么。

如何使用 IntelliJ IDEA 中 Java 项目中的相对路径从文件加载图标?

我的项目结构:

src/main/java/ <-- set as "sources" in IntelliJ
src/main/java/ui/ <-- contains classes for my GUI
src/main/resources/ <-- set as "resources" in IntelliJ. Contains images.

编辑:能够使用相对路径来确认找到文件,无法将其加载为图标。

String path = "src/main/resources/image.png";
System.out.println(new File(path).exists()); <-- true

我多次遇到这个问题,对我InputStream是使用InputStream

InputStream is = Main.class.getClassLoader().getResourceAsStream("name_of_file.png");

使用InputStream将允许您从各种文件类型中读取。 现在加载你可以做的图标

Icon icon = new ImageIcon(ImageIO.read(is));

资源在类路径上,而不是在文件系统路径上——它是从运行目录中获取的,当你从idea运行它时,它是项目目录。 通常你会将应用程序作为 jar 分发,这最好从类路径加载资源。 在 zour 情况下 - 从根目录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM