0

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

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

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

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

4

2 回答 2

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.
   }

}

你知道“模板”文件夹应该在你的 jar 里面。

于 2013-03-22T08:55:04.923 回答
1

如果你只需要阅读这个文件,你可能不需要 java.io.File 而只需要一个可以通过的 InputStream

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

如果你真的需要一个 java.io.File... 我不知道... 上次真的需要一个 File,我只是将 InputStream 复制到一个临时文件,但这很难看。

于 2013-03-22T08:51:57.070 回答