从Java运行Ant时设置JAVA_HOME

Ada*_*ume 5 java ant javac

原因很漫长而且很无聊,但是我需要运行一个Ant脚本来从Java 1.4应用程序编译Java 1.5代码.我不断收到此错误:

BUILD FAILED

build.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"
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我有:

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
Run Code Online (Sandbox Code Playgroud)

但它忽略了它.我也尝试过p.setUserProperty(String,String),但这也不起作用.有没有办法在不启动单独流程的情况下完成?

Jas*_*Day 5

构建文件中的javac任务是否有fork="yes"?如果没有,那么java.home属性设置为什么并不重要; ant将尝试Main在同一个java进程中调用javac 方法,该错误来自您的错误是JRE,而不是JDK.

编辑尝试将executablejavac任务的属性设置为javac二进制文件的完整路径并添加compiler="extJavac"到任务中.