Есть ли альтернатива Runtime.getRuntime().exec()

Просто интересно, есть ли что-то лучше, новее, безопаснее, быстрее и т. д., чем Runtime.getRuntime().exec().

Я хочу запустить другой процесс из своего приложения в Linux, и это единственный известный мне способ. Хорошо бы иметь альтернативу.


person LoudNPossiblyWrong    schedule 15.08.2011    source источник
comment
Этот способ как-то (конкретно) недостаточен? Похоже, вы просто просите дублировать функциональность.   -  person kylc    schedule 15.08.2011
comment
java.lang.Process не новее. Для некоторых целей это может быть лучше.   -  person bmargulies    schedule 15.08.2011
comment
я не говорю, что с getRuntime.exec что-то не так, просто я узнал об этом много лет назад в java 1.3, это единственный способ, который я знаю, и мне было интересно, есть ли более одного способа снять шкуру с кошки, вот и все .   -  person LoudNPossiblyWrong    schedule 15.08.2011


Ответы (1)


Как насчет ProcessBuilder?

Еще немного:

Представленный в Java 1.5, позволяет получить больший контроль над средой процесса — установить рабочий каталог, перенаправить поток ошибок на входной поток (из java POV) и еще несколько вещей.

С сайта Oracle:

ProcessBuilder. Новый класс ProcessBuilder обеспечивает более удобный способ вызова подпроцессов, чем Runtime.exec. В частности, ProcessBuilder упрощает запуск подпроцесса с измененной средой процесса (т. е. основанной на среде родительского процесса, но с некоторыми изменениями).

person MByD    schedule 15.08.2011
comment
...приподняв бровь, заинтересованно почесал подбородок. - person LoudNPossiblyWrong; 15.08.2011
comment
Если я могу спросить... есть ли способ выполнять команды из кода Java без использования API-интерфейсов ProcessBuilder и Runtime.getRuntime()? - person SJunejo; 17.08.2012