Я получаю некоторые проблемы при выполнении двоичного исполняемого файла с использованием кода Java - PullRequest
1 голос
/ 04 мая 2011

У меня возникают проблемы при выполнении двоичного исполняемого файла с использованием кода Java.

Мой исполняемый файл отлично работает на терминале (Linux OS) с помощью следующей команды

. / Ab0818

, где «ab0818» - исполняемый файл, а «ab0818.challenge» - входной файл.

Я получу 0 код выхода после выполнения этой команды в терминале

Мой кодэто Bellow.

System.out.println("Running the batch script");

Process p = Runtime.getRuntime().exec("./ab0818 < ab0818.challenge");
p.waitFor();
System.out.println("is.read() = "+p.exitValue());   

когда я запускаю свой код, он никогда не выйдет из процесса ожидания (waitFor ()) и моя программа никогда не завершится.

У меня есть вопрос, есть ли альтернативный способвыполнить команду, используя код Java или есть какие-либо изменения, необходимые в моем коде.

Заранее спасибо, -Viraj

1 Ответ

1 голос
/ 04 мая 2011

Java не знает об операторе перенаправления оболочки Linux "<". </p>

Вы можете попробовать:

...exec("bash -c './ab0818 < ab0818.challenge'")

Вы также можете посмотреть на http://download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...