0

我面临以下问题:我将 Eclipse 用于我的 Java 项目,并且我有以下结构:

  --> src
      --> package1
          ....
      --> package2
          ...

   -->dataFolder
       --> Folder1
            --> file1.xml
       --> Folder2
            file2.xml

在我的 java 项目中,我解析 dataFolder 目录中的所有文件。这没问题,因为我可以直接使用eclipse项目的根目录,像这样:

File dataStoreFolder = new File("dataFolder");
Some parsing......

但是当我将我的项目导出为可执行 jar 文件时,我无法再访问这些文件了。当然那是因为它们不在我放置 exec.jar 文件的同一个文件夹中。但我不想将包含数据的整个文件夹复制到我的 exec.jar 文件中。我可以以某种方式将它放在我的 jar 文件中吗?(我通过将 dataFolder 添加到 Java 构建路径来做到这一点,但它仍然无法像在 Eclipse 中那样工作)

有人能帮助我吗?

4

2 回答 2

3

当您使用 jar 文件时,这些文件不再作为文件存在。

您绝对可以将数据包含在您的 jar 文件中,但是您也需要更改访问它的代码。File您不需要创建对象,而是需要以下内容:

InputStream input = Foo.class.getResourceAsStream("/dataFolder/Folder1/file.xml");

所以你有两个可分离的任务:

  • 弄清楚如何在 jar 文件中包含数据文件夹
  • 更改代码以适当地访问数据
于 2012-07-23T11:37:14.693 回答
0

是的,您可以将它们放入您的 jar 文件中。只需dataFolder在 Eclipse 下创建一个源文件夹,它会将非 Java 文件复制到目标目录,并将它们添加到 jar 文件中。

一旦进入 jar 文件,你会得到file1.xml这样的:

InputStream in = SomeClass.class.getResourceAsStream("/Folder1/file1.xml");
于 2012-07-23T11:39:43.450 回答