首页 > 解决方案 > 如何在 java 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 或其他东西,它似乎有点不同。

任何人都可以帮我解决这个问题。谢谢!

标签: javaintellij-ideajar

解决方案


您不能在 .jar 文件中加载这样的文件,这里有一个关于如何读取 BufferedImages 的示例。但首先,请确保您已将资源文件夹标记为 IntelliJ 中的资源文件夹,方法是右键单击项目视图中的文件夹,然后转到“将目录标记为”并检查资源根目录。

    BufferedImage exampleBlock = null;
    try {
        exampleBlock = ImageIO.read(ClassLoader.getSystemResource("exampleBlock.png"));
    } catch (IOException e) {
        e.printStackTrace();
    }

通过使用这种获取文件的方法,您的所有文件都将被实现到 .jar 文件中,您可以通过调用它们的文件名+扩展名来使用它们


推荐阅读