在 jar 中加载文件

2022-09-02 09:14:50

我需要将配置文件打包在 jar 中。配置文件位于 jar 文件的根目录下。但是,我得到了以下错误:

由以下原因引起:java.lang.IllegalArgumentException:URI 在 java.io.File 上不是分层的。(来源不明)

File url = new File(MyClass.class.getClassLoader().getResource("my.conf").toURI());

答案 1

您应该改用 getResourceAsStream()。如果文件嵌入在 JAR 中,则 URI 很可能 bundle:// URI

InputStream is = this.getClass().getResourceAsStream("my.conf");

答案 2

为什么需要文件?如果需要读取配置,请使用

Class.getResourceAsStream("/my.conf");

这只需要是具有包根目录的一个文件夹中的文件(与jar的根目录相同)


推荐