从JAVA运行ant时,JAVA_HOME变量不正确
我想通过ant构建我的代码(在netbeans IDE中编写)。当我通过命令行执行此操作时,我没有任何问题。但现在我必须通过Java来实现。因此,我使用以下代码:
File buildFile = new File("C:/Users/user1/Documents/project/trunk/src_java_fa2/RePestApplet/build.xml");
Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
p.addReference("ant.projectHelper", helper);
helper.parse(p, buildFile);
p.executeTarget(p.getDefaultTarget());
当我执行此操作时,会出现以下错误:
Exception in thread "main" C:\Users\user1\Documents\project\trunk\src_java_fa2\RePestApplet\nbproject\build-impl.xml:894: The following error occurred while executing this line:
C:\Users\user1\Documents\project\trunk\src_java_fa2\RePestApplet\nbproject\build-impl.xml:1406: The following error occurred while executing this line:
C:\Users\user1\Documents\project\trunk\src_java_fa2\RePestStyle\nbproject\build-impl.xml:926: The following error occurred while executing this line:
C:\Users\user1\Documents\project\trunk\src_java_fa2\RePestStyle\nbproject\build-impl.xml:268: 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:\Program Files\jmonkeyplatform\jdk\jre"
所以它说我的JAVA_HOME变量没有设置为jdk。但当我检查这个时,我看到:
set JAVA_HOME
>>> JAVA_HOME=C:\Program Files\jmonkeyplatform\jdk
为什么它会认为JAVA_HOME变量被设置为jre
# 1 楼答案
XML文件的内容是什么
猜测一下,XMl文件是否有一些相对指定的路径 i、 e,/bin/xyz。。。而不是完整的路径
您可能希望在XML文件中使用完整路径(如果有的话)
# 2 楼答案
Id向代码中添加一些调试输出-
确认ant正在使用什么。如果错误,则将其设置为
至于为什么会发生这种情况,是您的构建文件改变了java。家
# 3 楼答案
正如错误消息“com.sun.tools.javac.Main不在类路径上”指出的那样,使用变量
JAVA_HOME
只是因为它没有在类路径上找到编译器类com.sun.tools.javac.Main
因此,在类路径中包含JDK的
tools.jar
更容易,因此ant将在不依赖环境变量的情况下找到类com.sun.tools.javac.Main