簡體   English   中英

從外部Jar文件中讀取文件?

[英]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.getEntryJarFile.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM