我試圖自動化一個進程,其中一個需要做一個ant構建。我已經設置了所有的環境變量。輸入命令直接進入CMD作品:Java ProcessBuilder無法識別java_home路徑
我的build.xml有這樣的一些屬性:在CMD
<property name="java.home" value="${env.JAVA_HOME}"/>
<property name="java.compiler.path" value="${JAVA_HOME}\bin\javac"/>
<echo> ${java.home} </echo>
<echo> ${java.compiler.path} </echo>
,並呼籲「蟻族」將呼應JDK的目錄。然而,通過的ProcessBuilder
CommandUtils.execute("\"c:\\Program Files (x86)\\Ant\\bin\\ant\"");
//inside execute() { pb = new ProcessBuilder("cmd", "/c", command);....}
調用Ant將回聲$ {java.home}和$ {} java.compiler.path字面上。 是否有任何更改可以指向java路徑,以便ProcessBuilder能夠識別java路徑?
它說「ProcessBuilder」替代了環境變量? – EJP
主要問題呢?當我做螞蟻時,我認爲這不是造成build.xml問題的原因。 $ {JAVA_HOME}回顯正確的目錄,但$ {env.JAVA_HOME}回顯$ {env.JAVA_HOME}。所以我無法通過ProcessBuilder運行ant構建? – user3758745
那是因爲你的java home指向JRE而不是JDK所以沒有編譯器(在tools.jar中)在classpath – Jan