配置文件的好位置? (用户之间共享,每台机器共通)

时间:2014-01-21 09:12:49

标签: java windows windows-shell

我正在用java for windows编写替换shell,我的应用程序当前正在使用

创建配置文件
File userSettings = new File("Gyroscope.properties");

但是,当它由Windows运行时,当前目录设置为C:\windows\System32\,程序对此目录没有写入权限。

要写入配置文件的更好位置是什么?最好让它相对于jar文件,但是我不知道这样做的好方法,并且其他堆栈溢出问题已经对这个确切的问题有不洁的解决方案,所以我正在寻找其他位置作为选项。 / p>

配置是特定于机器的,并且应该对所有用户都是通用的。

2 个答案:

答案 0 :(得分:1)

使用Preferences类,它会确保将设置写入允许的位置(例如用户的主目录或注册表)。

答案 1 :(得分:1)

我将描述一种可能的解决方案。应该有几种方法来实现它。

将配置文件放在jar旁边。在调用java(例如java -cp .../Gyroscope.jar;.../Gyroscope.properties <your_main_class>)时,将配置文件显式放在类路径中。

现在您可以作为资源访问您的属性文件(ClassLoader.getSystemResourceAsStream(“/ Gyroscope.properties”)。一旦方便,请使用您想要的任何类加载器并清除实际实现。一旦您有输入流,您可以像往常一样将属性加载到Properties对象中。

希望这会有所帮助。