ANT property environment=“env”无法在JAVA中检索它,但如果作为ANT命令运行,则可以正常工作
我有一个将从java调用的构建文件。请找到构建。下面是xml
<property environment="env"/>
<echo message="${env.PATH}"/>
<echo message="${env.SSH_CONNECTION}"/>
<echo message="${env.JAVA_HOME}"/>
<echo message="${env.HOME}"/>
<echo message="${env.IS_HOME}"/>
<echo message="${basedir}"/>
如果环境变量通过java类运行,则无法获取环境变量。但是,如果像“ant”一样作为ant命令运行,同样的方法也可以很好地工作。请帮忙
如果以JAVA运行,则错误为
--- MESSAGE LOGGED
Property ${env.JAVA_HOME} has not been set
--- MESSAGE LOGGED
[echo] ${env.JAVA_HOME}
但是我可以看到环境变量设置得很好。如果我回显变量命令行,我就能看到值
# 1 楼答案
我猜intershop studio为派生的进程(作业)设置了环境变量。我不能检查它,因为它是商业产品
但例如,在詹金斯,你有a list of environment variables被传递到你的工作中
查看intershop studio的文档
# 2 楼答案
设置或拉入Ant的任何环境变量都是实例变量。。。。它们仅对Ant实例和Ant创建/调用的任何进程可用
我需要更多地了解您是如何运行java命令的,以便了解您的java_主页是否在其他地方受到了影响
编辑:
我想我发现了问题。。。。在java程序(又名,您正在运行的类)中,您需要显式调用getenv,以便为该java程序实例导入环境变量。然后,您需要将该环境(以及其中的所有变量)传递给对Ant的调用,以便Ant能够访问它
默认情况下,ant收集所有环境变量。Java需要显式调用来获取环境变量
通过:docs找到。神谕com/javase/tutorial/essential/environment/env。html