${env.JAVA_HOME} not found - Ant



在我的build.xml文件中,我有以下几行:

<property environment="env"/>
<echo message="JAVA_HOME is set to = ${env.JAVA_HOME}" />

在某些机器上,这会打印

"JAVA_HOME is set to = /usr/jdk1.6"

但在其他一些设备上,它会打印这个

"JAVA_HOME is set to = ${env.JAVA_HOME}"

有人知道是什么原因造成的吗?

感谢

消息告诉Ant无法解析属性env.JAVA_HOME;这意味着没有在该机器中设置环境变量CCD_ 2。

您通常可以通过执行which anttype ant,在您的系统(如果您是Unix)上找到实际的ant命令所在的位置。如果查看该位置,通常会发现它是指向$ANT_HOME目录下实际ant命令的链接。

看看这个剧本。如果环境中没有默认设置$ANT_HOME$JAVA_HOME,那么大部分只是试图确定它们的确切位置。

ant shell脚本中看不到的是:

 EXPORT JAVA_HOME

因此,即使$JAVA_HOME设置在ant脚本内部,它也永远不会导出到环境中(除非有人修改了ant shell脚本. If an environment variable is not exported, it is unavailable to child processes -- like the java child process running your ant’process

因此,如果您所在的计算机在执行ant之前未设置$JAVA_HOME,则它在构建脚本中不可用。

然而,Ant和Java(因为Ant是一个Java进程)都设置了一系列可以使用的默认属性。当Ant执行时,它会设置自己的内置属性,其中包括${ant.home}之类的内容。而且,在执行Java时,Java还会建立一个完整的Java属性列表,如${java.home}

因此,如果您确实需要知道JAVA_HOME目录的位置,请使用属性JAVA_HOME0,而不依赖于环境变量$JAVA_HOME

如果您想获得这些属性的列表,请运行以下Ant构建文件:

<project>
    <echoproperties/>
</project>

相关内容

  • 没有找到相关文章

最新更新