Как выполнять команды DOS в Java с правами администратора?
Я разрабатывал проект на Java для сканирования файловой системы, и это включает в себя выполнение команд DOS в Java с правами администратора.
Я уже написал программу для выполнения простых команд DOS на Java.
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");
}
}
Но, как вы можете видеть, это не позволяет выполнять повышенные команды.
Я занимаюсь разработкой проекта в среде IDE Netbeans, и я надеялся, что кто-нибудь из вас скажет мне, есть ли в java какой-либо код для получения привилегий администратора вместо преобразования файла в.exe, а затем нажмите "Запуск от имени администратора".
2 ответа
Ваша JVM должна работать с правами администратора, чтобы запустить процесс с правами администратора.
Создайте свой код и запустите его от имени администратора - каждый процесс, созданный вашим классом, будет также иметь права администратора.
Попробуйте этот код, он работает для меня:
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();