簡體   English   中英

從與應用程序相同的JAR文件中引用文件

[英]Referencing file from within the same JAR file as the application

我在Eclipse中有一個Java應用程序,該應用程序將.XML文件引用為其他功能的模板。 通常,我打包不帶這些文件的.JAR文件,因為將它們放置在與.JAR文件相同的文件夾中,使用此引用似乎可以正常工作:

File myFile = new File("templates/templateA.xsd");

現在,我要求將這些模板放置在與此應用程序相同的.JAR文件中。 我可以毫無問題地包含它們,但是這些參考似乎不再起作用。

是否有從應用程序運行所在的同一.JAR中引用.XML文件的正確方法?

您需要知道如何從類路徑加載文件。 方式之一如下

class XMLLoader {

    public String loadXML(String fileName){
         InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName);
    // do the loading of the file from the given input stream.
   }

}

您知道“ templates”文件夾應該在jar中。

如果您只需要讀取此文件,則可能不需要java.io.File,而只需輸入即可通過

this.getClass().getResourceAsStream("templates/templateA.xsd")

如果您確實需要java.io.File ...我不知道...上一次真正需要一個File時,我只是將InputStream復制到一個臨時文件,但這很丑陋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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