我知道您可以使用 System.getProperty("user.name")
之类的方法检索 username 但我正在寻找检索 的方法当前用户的名字和姓氏。
是否有执行此操作的 native Java 库?还是必须插入 Windows API?或者您可能必须从 Active Directory 中提取它?这似乎相对容易with .NET但我找不到用 Java 来做的方法。
最佳答案
正如 Brian Roach 在评论中建议的那样,使用 JNA 执行此操作非常简单,因为它有 a built-in wrapper for Secur32包装 GetUsernameEx() function (这最终是由您在上面链接到的 .NET 库包装的系统调用)。
使用会是这样的:
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.platform.win32.Secur32;
// ...
char[] name = new char[100]; // or whatever is appropriate
Secur32.INSTANCE.GetUserNameEx(
Secur32.EXTENDED_NAME_FORMAT.NameDisplay,
name,
new IntByReference(name.length)
);
String fullName = new String(name).trim();
请注意,这将为您提供全名,其格式与您在命令提示符下键入 net user %USERNAME%/domain
时的格式相同。
关于java - 检索当前 Windows 用户的名字和姓氏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232220/