首选API存储

rup*_*upa 25 java preferences

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

n00*_*13f 34

对于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"属性来更改位置


MyP*_*ats 13

我必须扩展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.)