Как выполнять команды 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(); 
Другие вопросы по тегам