读取属性文件时出现java.nio.file.FileSystemNotFoundException

时间:2021-02-03 10:10:51

标签: java

我有办法

   private Properties loadProperties() throws IOException {

        Properties configuration = new Properties();
        InputStream inputStream = getClass()
                .getResourceAsStream("/" + RESOURCE_FILE);
        configuration.load(inputStream);

        if (inputStream != null) {
            inputStream.close();
        }

        return configuration;
    }

此方法从属性文件加载属性并返回它。但是,我从该项目构建了着色 jar,并将着色 jar 添加到另一个项目中。当项目尝试执行此方法时,它抛出:

<块引用>

java.nio.file.FileSystemNotFoundException

该项目在 windows 机器上运行,所以它应该有文件系统。为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

与“Windows 文件系统”无关。您从 jar 文件中读取文件,而 JAVA 要求 jar 文件必须包含您要读取的文件。确保

InputStream inputStream = getClass()
        .getResourceAsStream("/" + RESOURCE_FILE);

RESOURCE_FILE 正确包含在 JAR 文件中。例如。 /dir/fileName 其中 RESOURCE_FILE 应该是 dir/fileName