簡體   English   中英

在Java中運行命令行程序而沒有絕對路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM