Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where does the Java Preferences API store the data on Linux? [duplicate]

If I use the Preference API to store user or system preferences, where are they stored on Windows and Unix?

like image 758
rupa Avatar asked Nov 23 '22 12:11

rupa


2 Answers

For Windows systemRoot and userRoot are stored in HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs and HKEY_CURRENT_USER\Software\JavaSoft\Prefs respectively.

For Unix systemRoot and userRoot are stored in "/etc/.java" and "${user.home}/.java/.userPrefs", respectively.

Note that for Unix the locations can be changed by specifying "java.util.prefs.userRoot" and "java.util.prefs.systemRoot" properties

like image 116
n002213f Avatar answered Jan 11 '23 22:01

n002213f


I have to extend n002213fs' answer, because it seems to me, that the Storage Location is a big mess. Note that Windows saves it in the Windows Registry and Unix saves it in prefs.xml-files.

userRoot

  • Windows (32Bit): 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") or (if the previous value is not set) ~/.java/.userPrefs

systemRoot

  • Windows (32Bit): 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") or (if the previous value is not set) System.getProperty("java.home")+"/.systemPrefs" (System.getProperty("java.home") might be /etc/.java/. You can check it in a terminal with $JAVA_HOME.)
like image 33
MyPasswordIsLasercats Avatar answered Jan 11 '23 22:01

MyPasswordIsLasercats