我正在用java for windows编写替换shell,我的应用程序当前正在使用
创建配置文件File userSettings = new File("Gyroscope.properties");
但是,当它由Windows运行时,当前目录设置为C:\windows\System32\
,程序对此目录没有写入权限。
要写入配置文件的更好位置是什么?最好让它相对于jar文件,但是我不知道这样做的好方法,并且其他堆栈溢出问题已经对这个确切的问题有不洁的解决方案,所以我正在寻找其他位置作为选项。 / p>
配置是特定于机器的,并且应该对所有用户都是通用的。
答案 0 :(得分:1)
使用Preferences类,它会确保将设置写入允许的位置(例如用户的主目录或注册表)。
答案 1 :(得分:1)
我将描述一种可能的解决方案。应该有几种方法来实现它。
将配置文件放在jar旁边。在调用java(例如java -cp .../Gyroscope.jar;.../Gyroscope.properties <your_main_class>
)时,将配置文件显式放在类路径中。
现在您可以作为资源访问您的属性文件(ClassLoader.getSystemResourceAsStream(“/ Gyroscope.properties”)。一旦方便,请使用您想要的任何类加载器并清除实际实现。一旦您有输入流,您可以像往常一样将属性加载到Properties对象中。
希望这会有所帮助。