[英]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.