2012-04-20 12 views
8

Say mam następująceJava W jaki sposób korzystasz z interfejsu API preferencji? Gdzie przechowywane są te zmienne?

Preferences prefs = Preferences.userRoot().node(this.getClass().getName()); 

String ID1 = "Test1"; 

System.out.println(prefs.getBoolean(ID1, true)); 

prefs.putBoolean(ID1, false); 

//prefs.remove(ID1); 
  1. Czy ta zmienna trwałe następnym razem mogę wykonać mój program?
  2. Gdzie przechowywane są te zmienne?
  3. Jaki jest właściwy sposób korzystania z tego?
  4. Czy podejście jest lepsze niż używanie plików właściwości?
+3

lub z wersji, która nie była EOLd lat temu: http://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html –

Odpowiedz

12
  1. Tak, wartość jest stała, ale tylko dla użytkownika. Nie będzie tam dla innych użytkowników.
  2. Jest to zależne od systemu operacyjnego. W systemie Windows używa rejestru, dla Linuksa wierzę, że używa ukrytych plików w katalogu głównym użytkownika, chociaż nie jestem w 100% pewny.
  3. Masz całkiem dobry przykład w swoim pytaniu.
  4. Jest to inny, a nie lepszy. Preferencje są sposobem przezroczystego przechowywania ustawień dla aplikacji. Te ustawienia mogą być aktualizowane w czasie wykonywania przez użytkownika (na przykład można użyć ustawień wstępnych do przechowywania ustawień określonych przez użytkownika). Preferencje nie mogą być edytowane poza aplikacją. Pliki właściwości mają tendencję do przechowywania twardego ustawienia specyficznego dla aplikacji. Te ustawienia są takie same dla każdego użytkownika i często nie zmieniają się często. Pliki właściwości są plikami tekstowymi i zwykle towarzyszą aplikacji podczas wdrażania. Możesz je łatwo edytować za pomocą edytora tekstu. Jest dość rzadkie, aby aplikacja aktualizowała pliki właściwości.
+0

pamiętać, że jesteśmy mówiących użytkownikom OS tutaj ... aby aplikacja działająca pod serwerami użytkownika "tomcat" miała tę samą preferencję "użytkownika" dla wszystkich użytkowników tej aplikacji. –

+2

Dla # 1 ta wartość jest dla użytkownika z powodu '.userRoot()'. Aby zapisać go dla wszystkich użytkowników, użyj '.systemRoot()' – Ron

Powiązane problemy