【问题标题】:Change JDK for running <ANT> task from within build xml从构建 xml 更改 JDK 以运行 <ANT> 任务
【发布时间】:2013-07-11 12:59:24
【问题描述】:

我有调用 swfbuild.xml 的 build.xml。我希望父 build.xml 使用 IBM JDK 1.5 和 swfbuild.xml 使用 Sun JDK 1.6

&lt;ant&gt; 任务中是否有任何选项可以指定要使用的不同 JDK?

我尝试像下面这样设置 JAVACMD,但这也不起作用

如何为 swfbuild.xml 使用不同的 JDK?

    <target name="Compile_SWF">
        <exec executable="cmd">
            <env key="JAVACMD" value="C:/Program Files/Java/jdk1.6.0_18" />
        </exec>
        <echo message="Start to Compile SWF content" />
        <ant antfile="swfbuild.xml" target="swf-masterbuild" />
        <exec executable="cmd">
            <env key="JAVACMD" value="C:/IBM/SDP/runtimes/base_v61/java" />
        </exec>
    </target>

【问题讨论】:

  • 为什么需要在 swfbuild.xml 上使用不同的 JDK?是针对 javac 编译器,还是需要运行需要 1.6 支持的自定义任务?
  • swfbuild.xml 有 mxmlc 任务,由于 mxmlc(flex 编译器)的一些兼容性问题,我想使用 Sun JDK 1.6 完成该任务

标签: java ant build-automation mxmlc


【解决方案1】:

在每个 xml 文件中,您可以指定要在 javac 任务中使用的可执行文件。除了 executable= 参数之外,您还必须包含 fork=yes。

<javac fork="yes" executable="C:/Program Files/Java/jdk1.7.0_17/bin/javac">

【讨论】:

  • 在 swfbuild.xml 我有 mxmlc 任务而不是 javac
  • 好的。您是否尝试过使用您在问题中指定的 方法设置 JAVA_HOME 而不是 JAVACMD?据我所知,mxmlc 编译器会查找该环境变量以确定要使用的 JDK。见help.adobe.com/en_US/flex/using/…
  • ”任务没有使用 JAVACMD 或 JAVA_HOME。我应该如何设置 JAVA_HOME 环境?
  • 看来这不可能。尽管似乎有一些方法可以从 Ant 设置环境变量(使用 exec 和 cmd for windows),但它们似乎都不适用于当前正在执行的 ant 任务。我想一种解决方案不是使用“ant”任务来启动 swfbuild.xml,而是执行一个设置 JAVA_HOME 的脚本,然后在该 xml 文件上调用 ant。
  • 谢谢。这正是我必须做的。
猜你喜欢
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多