Как мне выполнить команду exe в JAVA? - PullRequest
0 голосов
/ 31 октября 2011

У меня есть исполняемый файл, который принимает имя файла в качестве ввода.Когда я выполняю ее как команду типа:

xyz.exe c:\input.txt c:\ouput.txt

Все работает как положено.

Но как выполнить это Java?Это тот, который я использовал, и я не получаю вывод в файлах:

String[] str = {"c:/input.txt","c:/output.txt"};
Process p = rt.exec("c:/xyz.exe",str); 

Ответы [ 3 ]

2 голосов
/ 31 октября 2011

Вы используете метод:

public Process exec(String command,
                    String[] envp)

где envp - это массив ( quote ) "строк, каждый элемент которого имеет настройки переменных среды в формате name = value, или ноль, если подпроцесс должен наследовать среду текущего процесса. "

Попробуйте вместо этого:

String[] command = {"c:/xyz.exe", "c:/input.txt", "c:/output.txt"}; 
Process p = Runtime.getRuntime().exec(command);
// ...

Также прочитайте эту статью, которая объясняет подводные камни Runtime.exec(...): http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

0 голосов
/ 31 октября 2011

Я считаю, что это должно ответить на ваш вопрос http://www.daniweb.com/software-development/java/threads/133710

0 голосов
/ 31 октября 2011

Использовать Runtime.exec или Processbuilder API

...