在这里坐着一个更大的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或其他方法,似乎有点不同。
有人可以帮我吗? 谢谢!
答案 0 :(得分:0)
您无法在.jar文件中加载类似的文件,这是有关如何读取BufferedImages的示例。 但是首先,通过在项目视图中右键单击该文件夹,然后转到“将目录标记为”并检查资源根目录,确保已将资源文件夹标记为IntelliJ中的资源文件夹。
BufferedImage exampleBlock = null;
try {
exampleBlock = ImageIO.read(ClassLoader.getSystemResource("exampleBlock.png"));
} catch (IOException e) {
e.printStackTrace();
}
使用这种获取文件的方法,所有文件都将实现为.jar文件,您可以通过调用其文件名+扩展名来使用它们
答案 1 :(得分:0)
对于maven或gradle项目,您只需使用maven目录约定即可
getClass().getResource("/your_file_located_in_src_main_resources.extension").getPath()