Если я использую API предпочтений для хранения пользовательских или системных настроек, где они хранятся в Windows и Unix?
Хранилище API предпочтений
Ответ 1
Для 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
Ответ 2
Мне нужно продлить ответ n002213fs, потому что мне кажется, что место хранения - большой беспорядок. Обратите внимание, что Windows сохраняет его в реестре Windows, а Unix сохраняет его в файлах prefs.xml.
userRoot
- Windows (32Bit):
HKEY_CURRENT_USER\Software\JavaSoft\Prefs
- Windows (64Bit) с JVM (64Bit):
HKEY_CURRENT_USER\Software\JavaSoft\Prefs
- Windows (64Bit) с JVM (32Bit):
HKEY_CURRENT_USER\Software\Wow6432Node\JavaSoft\Prefs
- Unix:
System.getProperty("java.util.prefs.userRoot")
или (если предыдущее значение не установлено)~/.java/.userPrefs
SystemRoot
- Windows (32Bit):
HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
- Windows (64Bit) с JVM (64Bit):
HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
- Windows (64Bit) с 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
. )