Хранилище API предпочтений
Если я использую API предпочтений для хранения пользовательских или системных настроек, где они хранятся в Windows и Unix?
Ответы
Ответ 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
. )