Come ottenere il nome utente di Windows in Java?

Quindi quello che sto cercando di fare è lasciare che il mio Java trovi il nome utente con cui è loggato Windows, quindi quando direi un tale metodo, restituirebbe il nome dell’utente, come lo uso nell’Utente chiamato Noah, java avrebbe restituire “Noah” e se fossi sull’utente Amanda, Java restituirebbe “Amanda”. Come lo farei?

Cerca la proprietà di sistema “user.name”.

String username = System.getProperty("user.name"); 
  • Proprietà di sistema
  • System.getProperty

Dimostrazione: Main.java

 public class Main { public static void main(String[] args) { System.out.println(System.getProperty("user.name")); } } 

Produzione:

 c:\dev\src\misc>javac Main.java c:\dev\src\misc>java Main rgettman c:\dev\src\misc> 

Provare:

 String userName = System.getProperty("user.name"); 

o

 String userName = new com.sun.security.auth.module.NTSystem().getName() 

Due strade

  1. System.getProperty("user.name");

  2. System.getenv("USERNAME");

Entrambi sono buoni per qualsiasi sistema operativo

NTSystem.getName () restituisce anche SYSTEM quando l’app viene eseguita su un servizio Windows. Non c’è modo di ottenere il nome utente con NTSystem quando l’app è in esecuzione su un servizio Windows