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
Spróbuj użyć metody Preferences i jej systemRoot() lub userRoot(), aby uzyskać preferencje dotyczące całego systemu lub użytkownika.
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
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ąć. –
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.
- 1. Tworzenie pierwszego ekranu użytkownika po raz pierwszy dla mojej aplikacji
- 2. Wykryj, kiedy aplikacja na iOS jest uruchamiana po raz pierwszy?
- 3. Po raz pierwszy przewodnik po bibliotece Androida
- 4. Wywołanie didReceiveRemoteNotification po uruchomieniu aplikacji po raz pierwszy
- 5. Nauka Oracle po raz pierwszy
- 6. Używanie readlines w pythonie? Po raz pierwszy
- 7. Jak wyłączyć funkcję pulltorefresh po raz pierwszy?
- 8. Awaria aplikacji powodująca aktualizację bazy danych sqlite po raz pierwszy
- 9. Tworzenie JavaScript API po raz pierwszy
- 10. fab.show() nie animowane po raz pierwszy po zainicjowaniu nowej aktywności
- 11. Współdzielone preferencje zostały zapisane po raz pierwszy
- 12. Jak przypisać wartość tylko po raz pierwszy
- 13. Problemy z używaniem PDO po raz pierwszy
- 14. błąd podczas uruchamiania cpan po raz pierwszy
- 15. Próbujesz uruchomić KIVY, po raz pierwszy
- 16. clientaccesspolicy.xml nie zwróciła się po raz pierwszy w niektórych przeglądarkach
- 17. W jaki sposób powinienem powiadomić użytkownika, że SQLite Asset Helper ładuje bazę danych po raz pierwszy?
- 18. Jak ustawić ciszę po zapisaniu modelu po raz pierwszy
- 19. Jakie zdarzenie występuje natychmiast po wyświetleniu kontrolki po raz pierwszy?
- 20. HttpWebRequest działa wolno po raz pierwszy w SQLCLR
- 21. OnTouch w MapView uruchamia się tylko po raz pierwszy
- 22. Jak wykonać prace po raz pierwszy w PhpStorm 2016.2
- 23. Windows Phone - Jak ustawić LocalSettings po raz pierwszy?
- 24. Dowiedz się, kiedy po raz pierwszy otworzyłeś aplikację po aktualizacji do nowszej wersji
- 25. MediaMetadataCompat METADATA_KEY_ART ustawia tylko obraz po raz pierwszy
- 26. Czy mogę używać istniejącego użytkownika jako administratora Django przy włączaniu administratora po raz pierwszy?
- 27. Firebase Dynamic Link nie działa podczas instalowania aplikacji z AppStore po raz pierwszy
- 28. Wykryj język użytkownika w PHP - stabilne rozwiązanie
- 29. Podgląd strony nie ładuje się po raz pierwszy
- 30. canvas drawImage nie rysuje obrazów po raz pierwszy
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 ...?) –
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
[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