[英]Run command-line program in Java without absolute path
我正在嘗試從Java程序運行Ant。 這有效:
// 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終端上ant -f build.xml
,但是將以上代碼放置在程序輸出中java.io.IOException: Cannot run program "ant": error=2, No such file or directory
。
如何以編程方式顯示ProcessBuilder Ant所在的位置? 該程序將在OS X以及可能的Ubuntu上運行。
注意:此問題不是特定於Ant的。 我還需要使用ProcessBuilder來調用其他命令行工具。
通過使Ant可通過屬性文件進行自定義,將其絕對路徑注入ProcessBuilder。這樣,您只需在屬性文件中提供相應的路徑即可在多個環境中運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.