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