如何使用管理权限在java中执行dos命令?

如何使用管理权限在java中执行dos命令?,java,windows,netbeans,command,administrator,Java,Windows,Netbeans,Command,Administrator,我正在用Java开发一个项目来扫描文件系统,这涉及到以管理权限在Java中执行dos命令 我已经用Java编写了执行简单dos命令的程序 public class doscmd { public static void main(String args[]) { try { Process p = Runtime.getRuntime().exec("cmd /C dir"); p.waitFor();

我正在用Java开发一个项目来扫描文件系统,这涉及到以管理权限在Java中执行dos命令

我已经用Java编写了执行简单dos命令的程序

public class doscmd {

    public static void main(String args[]) {
        try {
            Process p = Runtime.getRuntime().exec("cmd /C dir");
            p.waitFor();
            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line = reader.readLine();
            while (line != null) {
                System.out.println(line);
                line = reader.readLine();
            }

        } catch (IOException e1) {
        } catch (InterruptedException e2) {
        }

        System.out.println("Done");
    }
}
但正如您所见,这不允许执行提升的命令


我正在用Netbeans IDE开发这个项目,我希望你们中的任何人都能告诉我java中是否有任何代码可以获得管理员权限,而不是将文件转换为.exe,然后单击“以管理员身份运行”。

试试这段代码,它对我有用:

    String command = "cmd /c start cmd.exe";
    Process child = Runtime.getRuntime().exec(command);
    OutputStream output = child.getOutputStream();

    output .write("cd C:/ /r/n".getBytes());
    output .flush();
    output .write("DIR /r/n".getBytes());
    output .close(); 

您的JVM需要以管理员权限运行,才能以管理员权限启动进程


构建您的代码并以管理员身份运行-您的类生成的每个进程也将具有管理员权限。

据我所知,Java的可能副本不会在DOS上运行。你是说Windows控制台命令吗?这应该有用。我在ping时使用这个策略,100%成功。@rdn87当您以管理权限打开IDE时,此代码有效,但如果我想部署我的应用程序并使其成为可运行的jar,如何授予该jar管理权限?@TonyThomas请参阅本文:如何授予JVM管理权限@我知道我可以以管理员的身份在外部运行程序,但如何在代码内部运行呢。