当我的Java应用程序使用Eclipse的“运行应用程序”运行时,它需要创建在多次运行应用程序时保持不变的文件。将它们放在“目标”目录中是否可以接受?例如,workspace // target / database.db。
是否存在导致eclipse删除目标目录中所有文件的事件?
如果目标目录不是存放这些文件的好地方,那么它是个好地方?使用System.getProperty(“java.io.tmpdir”)会很尴尬,因为tmpdir位于不同的驱动器上,因为我需要在tmpdir中镜像工作区和项目的结构。
谢谢
答案 0 :(得分:2)
清理项目时target
目录被删除(mvn clean
)。这使得这不是存储数据的最佳位置。你最好将它保存到System.getProperty("user.home")
,或者将一个目录作为程序参数传递给评论中提到的SpaceTrucker,这也是一个很好的解决方案。
答案 1 :(得分:1)
我的建议是OSGi用户区(-user
,用于特定用户的偏好等),或OSGi实例区域(-data
,它是工作区的默认主页)。看一下this,然后向下滚动到" Locations",它解释了一下这些区域。
对于危险事件,只考虑-clean
(Eclipse arg,而不是Maven目标)和部署过程。 -clean
不应该触及持久文件,但仅适用于内部缓存,但您可能需要尝试以确保这一点。您的部署过程可能包括"删除安装目录的内容"加上"将新内容复制到安装目录",这将擦除默认放置在安装目录中的大多数区域。