如何在Java中获取Windows用户名?

所以我想要做的是让我的Javafind用户的名称,Windowslogin,所以当我说这样一个方法,它会返回用户名,就像我用它在用户名为诺亚,Java会返回“诺亚”,如果我在用户阿曼达,Java将返回“阿曼达”。 我将如何做到这一点?

Solutions Collecting From Web of "如何在Java中获取Windows用户名?"

查找系统属性“user.name”。

String username = System.getProperty("user.name"); 
  • 系统属性
  • System.getProperty

示范: Main.java

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

输出:

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

尝试:

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

要么

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

两种方式

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

  2. System.getenv("USERNAME");

两者都适合任何操作系统

当应用程序在Windows服务上运行时,NTSystem.getName()也返回SYSTEM。 当应用程序运行在Windows服务上时,没有办法让NTSystem获得用户名