2016-07-29 71 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:

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

虽然ant -f build.xml作品我的Mac终端上,把上面的代码放在我的程序输出java.io.IOException: Cannot run program "ant": error=2, No such file or directory

如何以编程显示的ProcessBuilder其中蚂蚁所在?该程序将在OS X和可能的Ubuntu上运行。

注:这个问题是不是蚂蚁特有的。我需要使用ProcessBuilder来调用其他命令行工具。

回答

0

只是在属性文件中提供了相应的路径注射通过使定制通过属性文件。此方法可以在多个环境中运行的蚂蚁的ProcessBuilder的绝对路径。