我想从我的jar文件中读取资源,方法如下:
File file;
file = new File(getClass().getResource("/file.txt").toURI());
BufferedReader reader = new BufferedReader(new FileReader(file));
//Read the file
在Eclipse中运行代码时工作正常,但是如果将其导出为jar文件然后运行,会出现IllegalArgumentException异常:
Exception in thread "Thread-2"
java.lang.IllegalArgumentException: URI is not hierarchical
而且我真的不知道为什么,但是通过一些测试我发现如果我改变
file = new File(getClass().getResource("/file.txt").toURI());
到
file = new File(getClass().getResource("/folder/file.txt").toURI());
然后情况就反过来了(在 jar 中可以运行,但在 Eclipse 中不行)。
我正在使用 Eclipse,并且包含我的文件的文件夹位于一个类文件夹中。
getResourceAsStream
仍然是解决问题更简单、更可移植的方法。 - Drew MacInnis