在jar中加载文件

时间:2010-12-28 19:11:53

标签: java jar

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

  

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

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

3 个答案:

答案 0 :(得分:29)

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

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

答案 1 :(得分:7)

为什么需要文件?如果您需要阅读配置使用

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

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

答案 2 :(得分:4)

该文件应与MyClass位于同一个包中。我刚刚意识到你正在创建一个File对象。而是尝试使用getResourceAsStream()。如果要从类路径资源中读取内容,这是正确的方法。这里is the example