I\'m trying to read a file from inside an external jar using java.. For example, I have two jar files. One is \"foo.jar\" the other is \"bar.jar\". Inside of \"bar.jar\" is
Use jar url to open connection the example code
InputStream in = null;
String inputFile = "jar:file:/c:/path/to/my.jar!/myfile.txt";
if (inputFile.startsWith("jar:")){
try {
inputURL = new URL(inputFile);
JarURLConnection conn = (JarURLConnection)inputURL.openConnection();
in = conn.getInputStream();
} catch (MalformedURLException e1) {
System.err.println("Malformed input URL: "+inputURL);
return;
} catch (IOException e1) {
System.err.println("IO error open connection");
return;
}
}
If the jar is in your classpath then getResourceAsStream
will work, but note that it will find the first instance in your classpath. If foo.jar and bar.jar both contain this file then it will return whichever jar is first in classpath.
To read it from the jar use JarFile.getEntry and JarFile.getInputStream