在 jar 中加载文件
我需要将配置文件打包在 jar 中。配置文件位于 jar 文件的根目录下。但是,我得到了以下错误:
由以下原因引起:java.lang.IllegalArgumentException:URI 在 java.io.File 上不是分层的。(来源不明)
File url = new File(MyClass.class.getClassLoader().getResource("my.conf").toURI());
我需要将配置文件打包在 jar 中。配置文件位于 jar 文件的根目录下。但是,我得到了以下错误:
由以下原因引起:java.lang.IllegalArgumentException:URI 在 java.io.File 上不是分层的。(来源不明)
File url = new File(MyClass.class.getClassLoader().getResource("my.conf").toURI());
您应该改用 getResourceAsStream()。
如果文件嵌入在 JAR 中,则 URI 很可能 bundle:// URI
InputStream is = this.getClass().getResourceAsStream("my.conf");
为什么需要文件?如果需要读取配置,请使用
Class.getResourceAsStream("/my.conf");
这只需要是具有包根目录的一个文件夹中的文件(与jar的根目录相同)