如何在Java jar文件中创建正确的资源文件路径

时间:2018-12-18 18:11:14

标签: java intellij-idea jar

在这里坐着一个更大的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或其他方法,似乎有点不同。

有人可以帮我吗? 谢谢!

2 个答案:

答案 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()