Запуск исполняемых файлов из Java

1

У меня есть внешняя исполняемая программа, которую я хочу запустить из моей java-программы. Хотя он работает, мне нужен способ получить то, что выводит.exe, а также способ затем отправить вход обратно в.exe. Это то, что я додумал до сих пор:

public int run(){
    String cmdRun = "cmd C:\\Meister\\Student\\bin\\Student.exe";

    int returnCode = 1;
    try {
        Process p = Runtime.getRuntime().exec(cmdRun); // makes appropriate system call
        BufferedReader stdError = new BufferedReader(new
                                  InputStreamReader(p.getErrorStream()));
        BufferedReader stdInput = new BufferedReader(new
                                  InputStreamReader(p.getInputStream()));
        String s = null;

        // read any info from the attempted command
        while ((s = stdError.readLine()) != null){ returnCode = -1; break; }
        while ((s = stdInput.readLine()) != null){ System.out.println(s); }
        System.out.println("Finished with exit code " + p.waitFor());
    } catch (Exception e) {
        e.printStackTrace();
    }

    return returnCode;
}

Как я должен правильно выполнить (1) программу, GET (2) выход программы, а затем SEND (3) ввести программу, когда это необходимо?

EDIT: Кстати, когда я запускаю метод, увиденный выше, я не вижу никакого вывода, даже если файл выполняется.

Теги:
cmd
process
system-calls

1 ответ

0

Попробуйте создать файл, в котором будет храниться вход, который вы хотите получить.exe, и создать другой файл для хранения вывода.exe, чтобы он мог быть прочитан программой java.

если это не помогло, вот некоторые ссылки, которые, мы надеемся, будут:

все о построителе процессов: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html

Я также нашел это во время поиска немного:

java runtime.getruntime() получение результата от выполнения командной строки

  • 0
    Это на самом деле не отвечает на мой вопрос. Я ищу способ получения выходных данных из Process и способ отправки сообщений в программу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню