所以,我有一个方法可以在属性文件中保存一些数据,但有些奇怪的事情发生了。请参阅,假设我在桌面上有JAR文件。如果我直接从那里打开它(双击等),属性文件将保存在桌面中,应该是。但是,如果将JAR拖到Windows开始列表并从那里打开它,属性文件将保存在System32文件夹中。
以下是方法:
&&
感谢任何帮助,因为我无能为力。
提前致谢!
答案 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个文件夹path1
和path2
。然后将.jar
添加到path1文件夹
2)
双击路径1中的jar。将按照您的预期在path1
中创建属性文件。
3)
在path2
中删除属性file.open命令提示符。在Prop.jar
中运行path1
文件。键入call "pathtodesktop/example/path1/Prop.jar"
按Enter键。
.property文件将在path2
而不是path1
中创建,这是您案件中发生的事情。