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