如何使用管理权限在java中执行dos命令?
我正在用Java开发一个项目来扫描文件系统,这涉及到以管理权限在Java中执行dos命令 我已经用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();
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管理权限@我知道我可以以管理员的身份在外部运行程序,但如何在代码内部运行呢。