2016-07-29 7 views
0

JavaプログラムからAntを実行しようとしています。これは動作します:絶対パスのないJavaでコマンドラインプログラムを実行

// Compile project 
ProcessBuilder pb = 
     new ProcessBuilder("/usr/local/Cellar/ant/1.9.6/libexec/bin/ant", "-f", pathToProject + "build.xml"); 
Process p = pb.start(); 
p.waitFor(); 

しかし、このプログラムは自分以外のマシンで使用されますので、私はむしろ、このようなProcessBuilderをインスタンス化したい:私のMac端末上

new ProcessBuilder("ant", "-f", pathToProject + "build.xml"); 

ant -f build.xmlものの作品を、私のプログラムの出力に上記のコードを置きますjava.io.IOException: Cannot run program "ant": error=2, No such file or directory

Antが配置されているProcessBuilderをプログラムでどのように表示できますか?このプログラムは、OS XとおそらくUbuntu上で動作します。

注:この質問はAnt固有ではありません。他のコマンドラインツールも呼び出すには、ProcessBuilderを使用する必要があります。

答えて

0

プロパティファイルを使用してカスタマイズ可能にすることで、Antの絶対パスをProcessBuilderに注入します。これにより、プロパティファイルに対応するパスを指定するだけで複数の環境で実行できます。