Setting JAVA_HOME when running Ant from Java

谁都会走 提交于 2019-11-30 15:19:49
Jason Day

Does the javac task in your buildfile have fork="yes"? If not, then it doesn't matter what the java.home property is set to; ant will attempt to call the javac Main method in the same java process, which from your error is a JRE, not a JDK.

EDIT Try setting the executable property of your javac task to the full path to the javac binary and add compiler="extJavac" to the task.

Shouldn't the backslashes be doubled?

p.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.6.0_04");

Have you set environment variables JAVA_HOME and ANT_HOME properly? If you are setting via code it should work though.

Also check if your %JAVA_HOME%\bin directory %ANT_HOME%\bin should be in the environment variable 'path'.

Your problem seems to be with the %JAVA_HOME%\bin not being present in the envt. variable path though.

Another way to make this work is to add 'tools.jar' to your classpath. The javac compiler is contained within this jar.

java -cp $JAVA_HOME/lib/tools.jar ...

javac option is available in tools.jar. In eclipse, even if your JRE HOME points to a jdk, all the system libraries point to JDK_HOME\jre\lib. There is no tools.jar. You can add tools.jar as an external Jar file. This should solve your issue

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!