${env.JAVA_HOME} not found - Ant

对着背影说爱祢 提交于 2019-12-03 23:38:52

The message tells you that Ant was not able to resolve the property env.JAVA_HOME; this means that the environment variable JAVA_HOME was not set in that machine.

You can usually find on your system (if you're Unix) where the actual ant command lives by doing either which ant or type ant. If you look at that location, you will usually see that it's a link to the actual ant command under the $ANT_HOME directory.

Take a look at this script. Much of it is just trying to determine exactly where $ANT_HOME and $JAVA_HOME reside if these are not set by default in the environment.

What you don't see in the ant shell script is:

 EXPORT JAVA_HOME

So, even though $JAVA_HOME is set inside the ant script, it is never exported into the environment (unless someone has modified the ant shell script. If an environment variable is not exported, it is unavailable to child processes -- like thejavachild process running yourant` process.

Thus, if you are on a machine where $JAVA_HOME isn't set before ant is executed, it won't be available in your build script.

However, both Ant and Java (because Ant is a Java process) setup a whole slew of default properties that you can use. When Ant executes it sets it's own built in properties that include things like ${ant.home}. And, when Java is executed, Java also sets up a complete list of Java Properties like ${java.home}.

So, if you really need to know where your JAVA_HOME directory is located, use the property ${java.home} and not depend upon the environment variable $JAVA_HOME.

If you'd like to get a list of these properties, run the following Ant build file:

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