Вы можете вызвать оболочку Unix, как если бы вы вызывали любую другую программу.Используйте параметр -c
, чтобы передать команду для запуска в качестве параметра.Также убедитесь, что вы используете метод exec(String[])
, а не exec(String)
, чтобы избежать неправильной маркировки команды:
String[] cmd = {"/bin/sh", "-c", "/bin/cat alias > bias"};
Process p = Runtime.getRuntime().exec(cmd);
Для чтения и записи в / из процесса, получите ввод,выходные данные и потоки ошибок из только что созданного экземпляра Process
:
InputStream in = p.getInputStream();
InputStream err = p.getErrorStream();
OutputStream out = p.getOutputStream();
Затем считывайте / записывайте в эти потоки как обычно.
Обратите внимание, что потоки именуются относительно Javaприложение.Все, что записано в OutputStream
, передается на стандартный ввод созданного вами процесса.Все, что записано процессом в stdout / stderr, передается в InputStream
s, полученных из p.getInputStream()
и p.getErrorStream()
соответственно.
Ссылка: http://download.oracle.com/javase/6/docs/api/java/lang/Process.html