首选API存储

如果我使用Preference API存储用户或系统首选项,它们存储在Windows和Unix上的哪个位置?

对于Windows systemRoot和userRoot分别存储在HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ PrefsHKEY_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的终端中查看它。)