如果我使用Preference API来存储用户或系统首选项,它们在 Windows 和 Unix 上存储在哪里?
问问题
17367 次
2 回答
38
对于 Windows,systemRoot 和 userRoot 分别存储在HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs和HKEY_CURRENT_USER\Software\JavaSoft\Prefs中。
对于 Unix,systemRoot 和 userRoot 分别存储在"/etc/.java"和"${user.home}/.java/.userPrefs"中。
请注意,对于 Unix,可以通过指定“java.util.prefs.userRoot”和“java.util.prefs.systemRoot”属性来更改位置
于 2009-08-24T06:44:57.003 回答
14
我必须扩展 n002213fs 的答案,因为在我看来,存储位置是一团糟。请注意,Windows 将其保存在Windows 注册表中,而 Unix 将其保存在prefs.xml -files 中。
用户根
- 视窗(32 位):
HKEY_CURRENT_USER\Software\JavaSoft\Prefs
- 带有 JVM(64 位)的 Windows(64 位):
HKEY_CURRENT_USER\Software\JavaSoft\Prefs
- 带有 JVM(32 位)的 Windows(64 位):
HKEY_CURRENT_USER\Software\Wow6432Node\JavaSoft\Prefs
- Unix:
System.getProperty("java.util.prefs.userRoot")
或 (如果未设置前一个值)~/.java/.userPrefs
系统根
- 视窗(32 位):
HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
- 带有 JVM(64 位)的 Windows(64 位):
HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
- 带有 JVM(32 位)的 Windows(64 位):
HKEY_LOCAL_MACHINE\Software\Wow6432Node\JavaSoft\Prefs
- Unix:
System.getProperty("java.util.prefs.systemRoot")
或 (如果未设置先前的值)System.getProperty("java.home")+"/.systemPrefs"
(System.getProperty("java.home")
可能是/etc/.java/
。您可以在终端中使用 . 进行检查$JAVA_HOME
。)
于 2015-12-01T11:23:35.490 回答