首选API存储
如果我使用Preference API存储用户或系统首选项,它们存储在Windows和Unix上的哪个位置?
对于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”属性来更改位置
我必须扩展n002213fs的答案,因为在我看来,存储位置是一个很大的混乱。 请注意,Windows将其保存在Windows注册表中 ,Unix将其保存在prefs.xml -files中。
userRoot
- Windows(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
SYSTEMROOT
- Windows(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
的终端中查看它。)