在jar中加载文件

use*_*631 20 java jar

我需要在jar中打包配置文件.配置文件位于jar文件的根目录下.但是我收到以下错误:

引起:java.lang.IllegalArgumentException:URI在java.io.File中不是分层的.(未知来源)

File url = new File(MyClass.class.getClassLoader().getResource("my.conf").toURI());
Run Code Online (Sandbox Code Playgroud)

And*_*ell 29

您应该使用getResourceAsStream()代替.如果文件嵌入在JAR中,则URI很可能是bundle:// URI

InputStream is = this.getClass().getResourceAsStream("my.conf");
Run Code Online (Sandbox Code Playgroud)


Vla*_*nov 7

你为什么需要一个档案?如果您需要阅读配置使用

Class.getResourceAsStream("/" + "my.conf");
Run Code Online (Sandbox Code Playgroud)

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

  • 真的没关系,想写"/"+ fileName,但是把变量改成真实姓名. (2认同)