开发者

reading xml file inside a jar-package

开发者 https://www.devze.com 2022-12-25 10:15 出处:网络
Here\'s my structure: com/mycompany/ValueReader.class com/mycompany/resources/values.xml I can read the file in my Eclipse project, but when I export it to a .jar it can never find the values.xml.

Here's my structure:

  • com/mycompany/ValueReader.class
  • com/mycompany/resources/values.xml

I can read the file in my Eclipse project, but when I export it to a .jar it can never find the values.xml.

I tried using ValueReader.class.getResource() and ValueReader.c开发者_如何学编程lass.getResourceAsStream() but it doesn't work.

What's the problem here? How do I get a File-object to my values.xml?

B.


You can't get a File object (since it's no longer a file once it's in the .jar), but you should be able to get it as a stream via getResourceAsStream(path);, where path is the complete path to your class.

e.g.

/com/mycompany/resources/values.xml


You can't get a File for the file because it's in a jar file. But you can get an input stream:

InputStream in = ValueReader.class.getResourceAsStream("resources/values.xml");

getResourceAsStream and getResource convert the package of the class to a file path, then add on the argument. This will give a stream for the file at path /com/mycompany/resources/values.xml.


This will work...

Thread.currentThread().getContextClassLoader().getResource("com/mycompany/resources/values.xml")


You can extract the jar then take what you want, in the same class-path using :

    ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new   
FileInputStream(zipfile.getCanonicalFile())));
0

精彩评论

暂无评论...
验证码 换一张
取 消