首选项 API 存储

2022-09-01 12:56:17

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


答案 1

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


答案 2

我必须扩展n002213fs的答案,因为在我看来,存储位置是一团糟。请注意,Windows将其保存在Windows注册表中,Unix将其保存在prefs.xml文件中。

用户根

  • 视窗 (32位):HKEY_CURRENT_USER\Software\JavaSoft\Prefs
  • Windows (64Bit) with JVM (64Bit):HKEY_CURRENT_USER\Software\JavaSoft\Prefs
  • Windows (64Bit) with JVM (32Bit):HKEY_CURRENT_USER\Software\Wow6432Node\JavaSoft\Prefs
  • Unix:(如果未设置以前的值)System.getProperty("java.util.prefs.userRoot") ~/.java/.userPrefs

系统根

  • 视窗 (32位):HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
  • Windows (64Bit) with JVM (64Bit):HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
  • Windows (64Bit) with JVM (32Bit):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

推荐