加载文件在一个jar子里
我需要将一个configuration文件打包在一个jar文件中。 configuration文件在jar文件的根目录下。 不过,我得到了以下错误:
引起:java.lang.IllegalArgumentException:URI在java.io.File中不是分层的(Unknown Source)
File url = new File(MyClass.class.getClassLoader().getResource("my.conf").toURI());
你应该使用getResourceAsStream()来代替。 如果文件embedded到JAR中,那么URI很可能是bundle:// URI
InputStream is = this.getClass().getResourceAsStream("my.conf");
你为什么需要一个文件? 如果你需要阅读configuration使用
Class.getResourceAsStream("/" + "my.conf");
这将只需要在你的包的根目录下的一个文件夹(与jar的根目录相同)
该文件应该与MyClass在同一个包中。 我刚刚意识到你正在创build一个File对象。 而是尝试使用getResourceAsStream()。 如果要从类path资源中读取内容,这是正确的方法。 这里是例子 。