2011-08-15 6 views
8

Runtime.getRuntime().exec()よりも優れた、新しい、より安全な、高速なものがあれば疑問です。Runtime.getRuntime()の代替手段がありますか。

私のアプリケーションからLinux上で別のプロセスを実行したいのですが、これは私がどのように知っているかの唯一の方法です。別の選択肢があるといいですね。

+1

この方法は何とか(具体的には)不十分ですか?あなたは重複した機能を求めているようです。 – kylc

+0

java.lang.Processは新しいものではありません。いくつかの目的のために、より良いかもしれません。 – bmargulies

+1

getRuntime.execに何か問題があると言っているわけではありません。それは何年も前にJava 1.3で学んだことです。私は方法を知っているだけで、猫には複数の方法があるかどうか疑問に思っていました。すべて。 – LoudNPossiblyWrong

答えて

13

ProcessBuilder

もう少し:

のJava 1.5で導入され、あなたがプロセス環境へのより多くの制御を得ることができます - あなたは(JavaのPOVから)入力ストリームへのエラーストリームをリダイレクトさせ、作業ディレクトリを設定し、いくつかの事柄。 Oracle's siteから

ProcessBuilderを - 新しいProcessBuilderをクラスは、Runtime.execのはよりもサブプロセスを起動するために、より 便利な方法を提供します。 では、ProcessBuilderによって、 の変更されたプロセス環境(つまり、親の プロセス環境に基づいていますが、いくつかの変更が加えられたサブプロセス)を簡単に開始できます。

+0

...私の眉を上げ、私の顎を傷つける。 – LoudNPossiblyWrong

+0

@LoudNPossiblyWrong - 公平だ:)編集を参照してください。 – MByD

+5

もし私が... ProcessBuilderとRuntime.getRuntime()APIを使わずにJavaコードからコマンドを実行する方法はありますか? – SJunejo

関連する問題