2015-01-23 3 views
0

У меня есть файл exe, скажем Factorial.exe.Запуск exe-файла с использованием java и ввода ввода

Когда я запускаю его, он принимает n и вычисляет n!. Невозможно изменить программу для передачи n в качестве аргумента командной строки.

Я знаю, как запустить это с помощью ProcessBuilder, но я не знаю, как внести в него ввод. Я думаю, что один из вариантов будет использовать перенаправление, так что мы имеем:

Factorial.exe < input.txt 

который существует единственное число в input.txt.

Но я не могу просто позвонить

ProcessBuilder builder = new ProcessBuilder("Factorial.exe < input.txt"); 

или

ProcessBuilder builder = new ProcessBuilder("Factorial.exe"," < input.txt"); 

как вход ProcessBuilder.


Я нашел способ сделать это, Но я не могу назвать это ответ его просто способ сделать это. Я создаю файл input.txt с соответствующим вводом. я называю пакетный файл, используя ProcessBuilder с этой командой: Factorial.exe < input.txt

это делает его работу, и я собираюсь использовать его, но я все еще интересно знать, есть ли лучший способ.

+0

Что-то вроде этого? http://stackoverflow.com/questions/1431551/command-line-pipe-input-in-java – ehoberg

+0

Нет, в этом вопросе пользователь вводит входной файл в программу java. Я хочу предоставить входной файл в exe-файл, используя java – sergio4

ответ

0

Просто добавьте параметр в ProcessBuilder-застройщиком:

new ProcessBuilder("Factorial.exe","5").start(); 
+0

Это не сработает. Кажется, что его ждет вход – sergio4

+0

, возможно, ваш factorial.exe ждет какое-то событие (например, нажатие кнопки ввода)? – Steffen

+0

Да, он считывает строку ввода. следует добавить \ n в "5"? – sergio4

Смежные вопросы