从与应用程序相同的JAR文件中引用文件

时间:2013-03-22 08:48:14

标签: java reference jar internal

我在Eclipse中有一个Java应用程序,它引用.XML文件作为其他功能的模板。通常我打包没有这些文件的.JAR文件,因为将它们放在与.JAR文件相同的文件夹中似乎可以正常使用此引用:

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

我现在要求将这些模板放在与此应用程序相同的.JAR文件中。我可以毫无问题地包括它们,但这些引用似乎不再起作用。

是否有正确的方法从运行应用程序的同一.JAR中引用.XML文件?

2 个答案:

答案 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复制到一个临时文件,但这很难看。