[英]Read a file from inside of an external Jar file?
我正在嘗試使用java從外部jar中讀取文件。例如,我有兩個jar文件。 一個是“foo.jar”,另一個是“bar.jar”。 “bar.jar”里面是文件“foo-bar.txt”。 如何使用“foo.jar”中的代碼從“bar.jar”內部讀取文件“foo-bar.txt”...? 這甚至可能..? 我知道我可以從foo.jar的iside讀取文件
this.getClass().getClassLoader().getResourceAsStream("foo-bar.txt");
但我不知道如何從外部罐子里做到這一點..有人能幫助我嗎?
如果jar在你的類路徑中,則getResourceAsStream
將起作用,但請注意它將在類路徑中找到第一個實例。 如果foo.jar和bar.jar都包含這個文件,那么它將返回classpath中的第一個jar。
要從jar中讀取它,請使用JarFile.getEntry
和JarFile.getInputStream
使用jar url打開連接示例代碼
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.