有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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}

但是我可以看到环境变量设置得很好。如果我回显变量命令行,我就能看到值


共 (2) 个答案

  1. # 1 楼答案

    我猜intershop studio为派生的进程(作业)设置了环境变量。我不能检查它,因为它是商业产品

    但例如,在詹金斯,你有a list of environment variables被传递到你的工作中

    查看intershop studio的文档

  2. # 2 楼答案

    设置或拉入Ant的任何环境变量都是实例变量。。。。它们仅对Ant实例和Ant创建/调用的任何进程可用

    我需要更多地了解您是如何运行java命令的,以便了解您的java_主页是否在其他地方受到了影响

    编辑:

    我想我发现了问题。。。。在java程序(又名,您正在运行的类)中,您需要显式调用getenv,以便为该java程序实例导入环境变量。然后,您需要将该环境(以及其中的所有变量)传递给对Ant的调用,以便Ant能够访问它

    默认情况下,ant收集所有环境变量。Java需要显式调用来获取环境变量

    通过:docs找到。神谕com/javase/tutorial/essential/environment/env。html