Java属性文件保存在system32文件夹中

时间:2015-07-18 04:39:44

标签: java outputstream fileoutputstream properties-file

所以,我有一个方法可以在属性文件中保存一些数据,但有些奇怪的事情发生了。请参阅,假设我在桌面上有JAR文件。如果我直接从那里打开它(双击等),属性文件将保存在桌面中,应该是。但是,如果将JAR拖到Windows开始列表并从那里打开它,属性文件将保存在System32文件夹中。

以下是方法:

&&

感谢任何帮助,因为我无能为力。

提前致谢!

1 个答案:

答案 0 :(得分:1)

根据您的代码,您还没有提供在桌面上创建的属性文件路径。

output = new FileOutputStream("ancients.data");

所以你的属性文件将在你的jar文件所在的同一目录中创建。

但是如果从父进程运行此.jar文件,则会在父进程所在的目录中创建jar文件。

我想当Windows启动时,win32目录中存在一个特定的进程,执行启动程序。我认为它是userinit.exe。所以你的prop文件将在System32目录中创建。

如果您希望在桌面上创建属性文件,可以将jar文件放在桌面上并将shortcut添加到.jar中,或者您可以为您的桌面提供完整路径,如

output = new FileOutputStream(System.getProperty("user.home") + "/Desktop/"+"ancients.data");

修改

了解这个问题

1)在desktop中创建一个名为example的文件夹,然后创建2个文件夹path1path2。然后将.jar添加到path1文件夹

enter image description here

2)双击路径1中的jar。将按照您的预期在path1中创建属性文件。

enter image description here

3)path2中删除属性file.open命令提示符。在Prop.jar中运行path1文件。键入call "pathtodesktop/example/path1/Prop.jar"按Enter键。

.property文件将在path2而不是path1中创建,这是您案件中发生的事情。

enter image description here