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

问题描述 投票:29回答:4

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

java windows username
4个回答
55
投票

查找系统属性“ 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>

17
投票

尝试:

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

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

16
投票

两种方法

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

  2. System.getenv("USERNAME");

两者都适合任何操作系统


1
投票
当应用程序在Windows服务上运行时,

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

© www.soinside.com 2019 - 2024. All rights reserved.