Here\'s my structure:
I can read the file in my Eclipse project, but
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())));
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
.
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
This will work...
Thread.currentThread().getContextClassLoader().getResource("com/mycompany/resources/values.xml")