gpt4 book ai didi

java - 检测 Java 应用程序是否以 Windows 管理员身份运行

转载 作者:IT老高 更新时间:2023-10-28 20:55:42 25 4
gpt4 key购买 nike

我有一个 Java 应用程序。无论如何我可以判断该进程是否在 Windows 7 上以管理员权限运行。

最佳答案

我找到了一个似乎与平台无关的不同解决方案。它尝试编写系统首选项。如果失败,用户可能不是管理员。

作为 Tomáš Zato建议,您可能希望抑制由此方法引起的错误消息。您可以通过设置 System.err 来做到这一点:

import java.io.OutputStream;
import java.io.PrintStream;
import java.util.prefs.Preferences;

import static java.lang.System.setErr;
import static java.util.prefs.Preferences.systemRoot;

public class AdministratorChecker
{
public static final boolean IS_RUNNING_AS_ADMINISTRATOR;

static
{
IS_RUNNING_AS_ADMINISTRATOR = isRunningAsAdministrator();
}

private static boolean isRunningAsAdministrator()
{
Preferences preferences = systemRoot();

synchronized (System.err)
{
setErr(new PrintStream(new OutputStream()
{
@Override
public void write(int b)
{
}
}));

try
{
preferences.put("foo", "bar"); // SecurityException on Windows
preferences.remove("foo");
preferences.flush(); // BackingStoreException on Linux
return true;
} catch (Exception exception)
{
return false;
} finally
{
setErr(System.err);
}
}
}
}

关于java - 检测 Java 应用程序是否以 Windows 管理员身份运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com