La préférence de l'API de stockage
Si j'utilise le La préférence de l'API pour stocker de l'utilisateur ou des préférences système, où sont-elles stockées sur Windows et Unix?
OriginalL'auteur rupa | 2009-08-24
Vous devez vous connecter pour publier un commentaire.
Pour Windows systemRoot et userRoot sont stockés dans HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs et HKEY_CURRENT_USER\Software\JavaSoft\Prefs respectivement.
Pour Unix systemRoot et userRoot sont stockés dans "/etc/.java" et "${user.home}/.java/.userPrefs", respectivement.
Noter que pour Unix, l'emplacement peut être modifié en spécifiant "de java.util.préf.userRoot" et "de java.util.préf.systemRoot" propriétés
Mac OS X utilise le java.util.préf.MacOSXPreferencesFactory classe. Voir lists.apple.com/archives/java-dev/2010/Jul/msg00056.html pour une discussion.
Je ne vois pas
MacOSXPreferencesFactory
classe dans mon Mac JDK: i.imgur.com/wWDryFT.pngle
java.util.prefs.MacOSXPreferencesFactory
classe devrait être dansrt.jar
dans le JDK 1.7 ou plus tard. Je n'ai pas de Mac, donc ne peut pas faire d'autres commentaires. Voir hg.openjdk.java.net/macosx-port/macosx-port/jdk/file/... pour le code source.eh bien, je suis de la compilation sur JDK 8... et, voici tous les éléments dans
java.util.prefs
: i.imgur.com/GdpGIVf.pngOriginalL'auteur n002213f
J'ai d'étendre n002213fs de réponse, parce qu'il me semble, que l'Emplacement de Stockage est un gros gâchis.
Notez que Windows enregistre dans le de Registre de Windows et Unix enregistre dans prefs.xml-fichiers.
userRoot
HKEY_CURRENT_USER\Software\JavaSoft\Prefs
HKEY_CURRENT_USER\Software\JavaSoft\Prefs
HKEY_CURRENT_USER\Software\Wow6432Node\JavaSoft\Prefs
System.getProperty("java.util.prefs.userRoot")
ou (si la valeur n'est pas définie)~/.java/.userPrefs
systemRoot
HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
HKEY_LOCAL_MACHINE\Software\Wow6432Node\JavaSoft\Prefs
System.getProperty("java.util.prefs.systemRoot")
ou (si la valeur n'est pas définie)System.getProperty("java.home")+"/.systemPrefs"
(System.getProperty("java.home")
pourrait être/etc/.java/
. Vous pouvez le vérifier dans un terminal avec$JAVA_HOME
.)FileSystemPreferences
ajoute toujours le.java/.userPrefs
racine sur la configuration de la voie. Donc l'équivalent de propriété par défaut de réglage pourjava.util.prefs.userRoot
est vraiment juste le répertoire d'accueil (ou~
comme vous le dites).OriginalL'auteur MyPasswordIsLasercats