[英]How to create correct resource file path in a java jar file
坐在这里有一个更大的Java项目(面向软件专业的一年级学生),在创建正确的资源文件路径时遇到了一些麻烦。
我现在有.txt,.png,.jpg和.gif格式的文件。
现在,我使用这样的路径来查找文本文件:
File userFile = new File("Source Code/files/users.txt");
或类似这样的路径来创建在我的FX代码中加载的图像:
File logoPath = new File("Source code/files/graphics/Streamy_logo.png");
Image logoImage = new Image(logoPath.toURI().toString());
logo.setImage(logoImage);
这在我的IDE(IntelliJ)中可以正常工作,但是当我将项目创建为Jar文件时却无法正常工作。 我认为这与在jar文件中未创建的“源代码”目录有关,这现在很有意义。
试图阅读不同的主题,但是如果我应该使用getResources方法,设置resourceStream或其他方法,似乎有点不同。
有人可以帮我吗 谢谢!
您无法在.jar文件中加载类似的文件,这是有关如何读取BufferedImages的示例。 但是首先,通过在项目视图中右键单击该文件夹,然后转到“将目录标记为”并检查资源根目录,确保已将资源文件夹标记为IntelliJ中的资源文件夹。
BufferedImage exampleBlock = null;
try {
exampleBlock = ImageIO.read(ClassLoader.getSystemResource("exampleBlock.png"));
} catch (IOException e) {
e.printStackTrace();
}
通过使用这种获取文件的方法,所有文件都将实现为.jar文件,您可以通过调用其文件名+扩展名来使用它们
对于Maven或Gradle项目,可以遵循Maven目录约定
getClass().getResource("/your_file_located_in_src_main_resources.extension").getPath()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.