33

所以我想做的是让我的Java找到登录windows的用户名,所以当我说这样的方法时,它会返回用户名,就像我在名为Noah的用户中使用它一样,java会返回“Noah”,如果我在用户 Amanda 上,Java 将返回“Amanda”。我该怎么做?

4

4 回答 4

62

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

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

演示: 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>
于 2013-11-14T22:48:22.883 回答
17

两种方式

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

  2. System.getenv("USERNAME");

两者都适用于任何操作系统

于 2013-11-15T00:08:33.277 回答
17

尝试:

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

或者

String userName = new com.sun.security.auth.module.NTSystem().getName()
于 2013-11-14T22:48:33.197 回答
1

当应用程序在 Windows 服务上运行时,NTSystem.getName() 也会返回 SYSTEM。当应用程序在 Windows 服务上运行时,无法使用 NTSystem 获取用户名

于 2014-12-31T19:52:00.380 回答