我在Eclipse中有一个Java应用程序,它引用.XML文件作为其他功能的模板。通常我打包没有这些文件的.JAR文件,因为将它们放在与.JAR文件相同的文件夹中似乎可以正常使用此引用:
File myFile = new File("templates/templateA.xsd");
我现在要求将这些模板放在与此应用程序相同的.JAR文件中。我可以毫无问题地包括它们,但这些引用似乎不再起作用。
是否有正确的方法从运行应用程序的同一.JAR中引用.XML文件?
答案 0 :(得分:2)
您需要知道如何从类路径加载文件。 其中一种方法如下
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.
}
}
你知道"模板"文件夹应该在你的罐子里面。
答案 1 :(得分:1)
如果您只需要阅读此文件,您可能不需要java.io.File,只需要一个可以通过
获得的InputStream。this.getClass().getResourceAsStream("templates/templateA.xsd")
如果你真的需要一个java.io.File ......我不知道......上一次真的需要一个文件,我只是将InputStream复制到一个临时文件,但这很难看。