Staram się więc, aby moja Java znalazła nazwę użytkownika, z którym jest zalogowany system Windows, więc gdybym powiedział taką metodę, zwróciłaby ona nazwę użytkownika, tak jak ja używam go w nazwie użytkownika Noah, java zwróci "Noah" i gdybym był użytkownikiem Amandy, Java zwróciłaby "Amandę". Jak to zrobić?Jak uzyskać nazwę użytkownika Windows w Javie?
Odpowiedz
Wyszukaj właściwość systemową "user.name".
String username = System.getProperty("user.name");
Demonstracja: Main.java
public class Main {
public static void main(String[] args) {
System.out.println(System.getProperty("user.name"));
}
}
wyjściowa:
c:\dev\src\misc>javac Main.java
c:\dev\src\misc>java Main
rgettman
c:\dev\src\misc>
Tak powinny być odpowiedzi. To naprawiło mój obecny problem, i nauczyłem mnie dodatków jako bonusu. – KjetilNordin
Spróbuj:
String userName = System.getProperty("user.name");
lub
String userName = new com.sun.security.auth.module.NTSystem().getName()
Podoba mi się ta odpowiedź, ponieważ gdy niektóre aplikacje java działają jako usługa Windows, System.getProperty ("nazwa użytkownika") zwraca "SYSTEM", jeśli usługa została uruchomiona przed zalogowaniem się użytkownika, a nie aktualnie zalogowanym użytkownikiem w momencie wywołania jest zrobione. NTSystem.getName() zwraca aktualnie zalogowaną nazwę użytkownika podczas rozmowy. Natywna metoda jest przydatna w implementacji logiki, która jest specyficzna dla systemu Windows i gdzie użytkownicy uruchamiają użytkownika "SYSTEM" zwrócony przez System.getProperty ("user.name") podczas działania jako usługa systemu Windows. –
Dwa sposoby
System.getProperty("user.name");
System.getenv("USERNAME");
Oba są dobre dla każdego systemu operacyjnego
NTSystem.getName() zwraca również system, gdy aplikacja działa na usługi windows. Nie ma sposobu na uzyskanie nazwy użytkownika za pomocą NTSystem, gdy aplikacja działa w usłudze Windows
jako @Sanjiv Jivan powiedział powyżej: System.getProperty ("user.name") zwraca "SYSTEM", jeśli usługa została uruchomiona przed zalogowaniem użytkownika, a nie aktualnie zalogowanym użytkownikiem w momencie wywołania. NTSystem.getName() zwraca aktualnie zalogowaną nazwę użytkownika podczas rozmowy. Natywna metoda jest przydatna w implementacji logiki, która jest specyficzna dla systemu Windows i gdzie użytkownicy uruchamiają użytkownika "SYSTEM" zwrócony przez System.getProperty ("user.name") podczas działania jako usługa systemu Windows. – GMLewisII
Prawdopodobny duplikat [nazwa aktualnej maszyny Java i zalogowany użytkownik?] (Http://stackoverflow.com/questions/473446/java -aktualny-nazwa-maszyny-i-zalogowany-użytkownika) – user3004449