Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当java应用程序从Eclipse运行时,它应该在哪里创建文件?_Java_Eclipse - Fatal编程技术网

当java应用程序从Eclipse运行时,它应该在哪里创建文件?

当java应用程序从Eclipse运行时,它应该在哪里创建文件?,java,eclipse,Java,Eclipse,当我的Java应用程序使用Eclipse中的“run application”运行时,它需要创建跨多个应用程序运行的持久文件。将这些文件放在“目标”目录中是否可以接受?例如,workspace//target/database.db 是否存在导致eclipse删除目标目录中所有文件的事件 如果目标目录不是存储这些文件的好地方,那么哪里是一个好地方?使用System.getProperty(“java.io.tmpdir”)会很尴尬,因为tmpdir位于不同的驱动器上,而且我需要在tmpdir中镜

当我的Java应用程序使用Eclipse中的“run application”运行时,它需要创建跨多个应用程序运行的持久文件。将这些文件放在“目标”目录中是否可以接受?例如,workspace//target/database.db

是否存在导致eclipse删除目标目录中所有文件的事件

如果目标目录不是存储这些文件的好地方,那么哪里是一个好地方?使用System.getProperty(“java.io.tmpdir”)会很尴尬,因为tmpdir位于不同的驱动器上,而且我需要在tmpdir中镜像工作区和项目的结构


谢谢

我的建议是OSGi用户区(
-User
,用于用户特定的首选项等),或者OSGi实例区(
-data
,这是工作区的默认主页)。看一看,然后向下滚动到“位置”,这解释了一些关于这些区域的信息


至于危险事件,只会想到
-clean
(Eclipse arg,而不是Maven目标)和您的部署过程
-clean
不应接触持久化文件,而应仅在内部缓存上工作,但您可能需要尝试一下以确保。您的部署过程可能包括“删除安装目录的内容”和“将新内容复制到安装目录”,这将擦除默认放置在安装目录中的大部分区域。

清理项目时(
mvn clean
)会删除
目标
目录。这使得这里不是存储数据的最佳场所。你最好把它保存到,或者像评论中提到的SpaceTrucker那样,把一个目录作为程序参数传递,这也是一个很好的解决方案。

在你的用户目录中的某个地方设置一个路径似乎是合适的。也可以将其作为程序参数传递。如果您说需要镜像worksapce的结构,那么您的程序似乎与该结构耦合得太紧密。请参阅,我建议使用
System.getProperty(“user.home”)
。如下文所述:@user714965@user714965给你,你现在10岁了