我遇到以下问题: 我将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 Build Path来实现的,但它仍然不像在Eclipse中那样工作)
有人能帮助我吗?
答案 0 :(得分:2)
当您使用jar文件时,那些文件不再作为文件存在。
您绝对可以在jar文件中包含数据,但是您也需要更改访问它的代码。您不需要创建File
对象,而是需要以下内容:
InputStream input = Foo.class.getResourceAsStream("/dataFolder/Folder1/file.xml");
所以你有两个可分离的任务:
答案 1 :(得分:0)
是的,您可以将它们放在jar文件中。只需在Eclipse下创建dataFolder
源文件夹,它就会将非Java文件复制到目标目录,并将它们添加到jar文件中。
进入jar文件后,您会得到file1.xml
,如下所示:
InputStream in = SomeClass.class.getResourceAsStream("/Folder1/file1.xml");