从Java运行Ant时设置JAVA_HOME
原因很长很无聊,但是我需要运行一个Ant脚本来从Java 1.4应用程序编译Java 1.5代码。我一直收到此错误,但是:
BUILD FAILEDbuild.xml:16: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\j2sdk1.4.2_16\jre"
在我的代码中,我有:
Project p = new Project();p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.setProperty("java.home", "C:\Program Files\Java\jdk1.6.0_04");
p.fireBuildStarted();
p.init();
// so on and so forth
但它忽略了它。我也尝试过p.setUserProperty(String,String),但这也不能解决问题。有没有一种方法而无需启动单独的过程?
回答:
您的buildfile中的javac任务有fork="yes"
吗?如果不是,那么java.home
属性设置为什么都无关紧要。ant会尝试Main
在同一java进程中调用javac
方法,从您的错误来看,它是JRE,而不是JDK。
尝试将executable
Javac任务的属性设置为javac
二进制的完整路径,然后添加compiler="extJavac"
到任务中。
以上是 从Java运行Ant时设置JAVA_HOME 的全部内容, 来源链接: utcz.com/qa/409164.html