-1
В java, как я могу выполнить внешнюю команду (например, в cmd
в Windows или в terminal
в Linux) и захватить результат, когда команда была выполнена?Как выполнить внешнюю команду и захватить вывод?
В java, как я могу выполнить внешнюю команду (например, в cmd
в Windows или в terminal
в Linux) и захватить результат, когда команда была выполнена?Как выполнить внешнюю команду и захватить вывод?
Рассмотрите Apache Commons Exec для этой цели.
It is a simple, но надежная структура для реализации многоплатформенных вызовов командной строки.
Вот пример метода для выполнения команды и получения результата в виде String
экземпляра.
import java.io.ByteArrayOutputStream;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.Executor;
import org.apache.commons.exec.PumpStreamHandler;
public String execToString(String command) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
CommandLine commandline = CommandLine.parse(command);
DefaultExecutor exec = new DefaultExecutor();
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
exec.setStreamHandler(streamHandler);
exec.execute(commandline);
return(outputStream.toString());
}
Непонятно, какая у вас проблема. Посмотрите на [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и покажите нам, что вы сделали до сих пор и что вы ожидаете. – gfelisberto
@gfelisberto Я отредактировал его вопрос, чтобы быть более ясным. –
В Интернете есть сотни примеров и здесь, на SO, как это сделать. Неясно, какие проблемы имеет ОП с «классическими» решениями. – gfelisberto