如何确定java程序是否在运行时以管理员身份运行

时间:2012-05-17 21:00:59

标签: java windows windows-7 admin administration

我有一个java程序,它将在Windows上运行,我希望以不同的方式运行,基于程序是否以管理权限运行,而不是程序是以普通用户身份运行。

我需要一个通用的解决方案,它可以适用于不同风格的java(不仅仅是oracle / sun的版本)。

1 个答案:

答案 0 :(得分:3)

我使用reg查询方法来确定当前程序是否是管理员访问权限。以下内容应提供足够的信息,您可以根据需要对其进行修改。

    try {
        String command = "reg query \"HKU\\S-1-5-19\"";
        Process p = Runtime.getRuntime().exec(command);
        p.waitFor();                            // Wait for for command to finish
        int exitValue = p.exitValue();          // If exit value 0, then admin user.

        if (0 == exitValue) {
            System.out.println("admin user");
        } else {
            System.out.println("non admin user");
        }

    } catch (Exception e) {
        e.printStackTrace();
    }