2014-10-06 5 views
2

Я пытаюсь выполнить команду awk в java для linux/unix os, но дело в том, что когда я выполняю команду, она не показывает никакой ошибки. Но после выполнения нет выхода и требуется фракция второго для выполнения, я не знаю проблемы, пожалуйста, помогите.Выполнение команды awk в java

код

process p =new process(): 
yes = "awk '{print $1}' /root/Desktop/net/net.zone >> /root/Desktop/net/net.txt"; 
p = Runtime.getRuntime().exec(yes); 

Спасибо за вашу помощь

ответ

4

Запуск процессов командной строки правильно с Java не легко. Я предлагаю вам использовать commons-exec вместо того, чтобы пытаться самостоятельно.

Теперь у вас есть в командной строке две вещи, которые нуждаются в особом вручая:

  • одинарные кавычки сценарий AWK. Когда вы передаете каждый аргумент в виде отдельных строк до CommandLine через addArgument, вам больше не нужны цитаты.
  • Выходное перенаправление.

    Поскольку вы создаете дочерний процесс, вы контролируете stdin и stout. Это означает, что вам нужно открыть целевой файл для добавления в Java, обернуть его в PumpStreamHandler и передать его DefaultExecutor. Смотрите этот вопрос подробно: Process output from apache-commons exec

+0

Сэр Я новичок в Java не могу понять, что вы говорите, может у пожалуйста, подробно –

+0

Пожалуйста, обратитесь к документации, которую я связан и работать с примерами. Если вы не знаете, как добавить библиотеку в свой проект, ваша документация IDE должна объяснить это. –

+0

@vigneshkalai, поскольку вы новичок в Java. Я предлагаю вам спросить на форуме Java, как делать то, что вы пытаетесь сделать. Отличный шанс, что вызов awk НЕ правильный подход. –

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