这是我的结构:
我可以在我的Eclipse项目中读取该文件,但是当我将它导出到.jar时,它永远找不到values.xml。
我尝试使用ValueReader.class.getResource()和ValueReader.class.getResourceAsStream()但它不起作用。
这里有什么问题? 如何将File-object获取到我的values.xml?
乙
答案 0 :(得分:8)
您无法获取File
对象(因为它不再是.jar中的文件),但您应该可以通过getResourceAsStream(path);
将其作为流来获取,其中{ {1}}是您班级的完整路径。
e.g。
path
答案 1 :(得分:2)
您无法获得该文件的File
,因为它位于jar文件中。但是你可以得到一个输入流:
InputStream in = ValueReader.class.getResourceAsStream("resources/values.xml");
getResourceAsStream
和getResource
将类的包转换为文件路径,然后添加参数。这将为路径/com/mycompany/resources/values.xml
的文件提供流。
答案 2 :(得分:0)
这会有用......
Thread.currentThread().getContextClassLoader().getResource("com/mycompany/resources/values.xml")
答案 3 :(得分:-1)
你可以使用:
在相同的类路径中提取jar然后获取你想要的东西 ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new
FileInputStream(zipfile.getCanonicalFile())));