2011-11-29 12 views
5

Chcę, aby moja aplikacja java pulpitu wiedziała, czy użytkownik uruchamia ją po raz pierwszy na tym komputerze. Ponieważ plik-jar może być współużytkowany przez użytkowników, nie chcę pisać do pliku wewnątrz pliku-jar. Istnieje oczywiście wiele sposobów na zrobienie tego, ale co poleciłbyś? (Musi być wieloplatformowy). DziękiWykryj użytkownika po raz pierwszy w aplikacji java

Odpowiedz

4

Spróbuj użyć metody Preferences i jej systemRoot() lub userRoot(), aby uzyskać preferencje dotyczące całego systemu lub użytkownika.

+0

Wydaje się to naprawdę miłe, ale może trochę niebezpieczne? preferencje systemu/użytkownika mogą być łatwo usunięte przez inną aplikację lub ręcznie przez użytkownika, prawda? (być może jest to bardzo rzadkie ...?) –

+0

Podobnie jak w przypadku każdego innego rozwiązania, preferencje mogą być zmieniane przez użytkownika/aplikację, która ma uprawnienia do tego. Jeśli musisz zapobiec konfliktom między preferencjami różnych aplikacji, rozważ użycie [systemNodeForPackage (Class)] (http://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html#systemNodeForPackage % 28java.lang.Class% 29) lub [userNodeForPackage (klasa)] (http://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html#userNodeForPackage%28java.lang .Class% 29). – szhem

+0

[tutaj] (http://mindprod.com/jgloss/preferences.html#LOCATION) to także informacje o tym, gdzie preferencje są zwykle przechowywane w różnych systemach. I [tutaj] (http://java.sun.com/developer/technicalArticles/releases/preferences/) jest raczej starym, ale użytecznym artykułem technicznym o 'Preferencjach'. – szhem

7

Polecam korzystanie z katalogu użytkowników domowych, gdzie można umieścić plik specyficznych ustawień użytkownika. Umożliwi to wykrycie użytkowników po raz pierwszy, a także zapamiętanie dowolnie wybranych preferencji.

System.getProperty("user.home"); // returns the home directory cross platform 
+0

Jest to skuteczne rozwiązanie poza kursem, może jednak nie bardzo piękne w tym przypadku, ponieważ nie ma żadnych potrzebnych ustawień użytkownika. Oczywiście aplikacja może umieścić pusty plik w katalogu domowym (jeśli plik istnieje, nie jest to pierwszy użytkownik), ale użytkownik może się zirytować takim plikiem w folderze domowym i go usunąć. –

0

Każdy system operacyjny ma kilka konkretnych katalogów, w których przechowywane są dane użytkownika (/home, C:\Users, C:\Documents and settings). Ta wartość jest zwykle dostępna w JVM z właściwością System "user.home".

Przechowuj tam plik do przechowywania konfiguracji użytkownika. Oczywiście każdy system operacyjny ma taki sposób (folder "Dane aplikacji", folder o nazwie zaczynającej się od kropki), powinieneś być pewien, że go przestrzegasz.

Powiązane problemy