【问题标题】:Setting the target version of Java in ant javac在ant javac中设置Java的目标版本
【发布时间】:2010-12-02 01:24:56
【问题描述】:

我需要使用 ant (1.7.0) 编译一个 jar 文件以在特定版本的 Java (1.5) 下运行。我目前在我的机器上安装了 Java 1.6。我试过设置:

<target name="compile">
  <javac compiler="javac1.5" target="1.5" srcdir=.../>
</target>

我也删除了

<property name="build.compiler" value="modern"/>

并且没有属性文件。我在 Linux/SUSE 上运行 Java 1.6

还有一种简单的方法可以确定 jar 文件中预期的 Java 版本。

【问题讨论】:

    标签: ant javac


    【解决方案1】:

    使用“target”属性并删除“compiler”属性。见here。所以它应该是这样的:

    <target name="compile">
      <javac target="1.5" srcdir=.../>
    </target>
    

    希望对你有帮助

    【讨论】:

    • 我还必须使用 source 和 bootclasspath 属性。有关交叉编译示例,请参阅 here。 (与ant属性有直接对应关系)
    • 如果答案可以修改为添加sourcebootclasspath,那就太好了
    • 它有助于旧版应用程序。
    【解决方案2】:

    应该指定源和目标。我建议提供ant defaults,这样您就不需要为每个 javac 任务指定源/目标属性:

    <property name="ant.build.javac.source" value="1.5"/>
    <property name="ant.build.javac.target" value="1.5"/>
    

    更多信息请参见Java cross-compiling notes

    【讨论】:

    • 跨度>
    【解决方案3】:

    在我使用的类文件中查找 java 的版本:

    javap -verbose <classname>
    

    在开头宣布版本为

    minor version: 0
    major version: 49
    

    对应于 Java 1.5

    【讨论】:

      【解决方案4】:

      您也可以设置{{ant.build.javac.target=1.5}} ant 属性来更新任务的默认目标版本。 见http://ant.apache.org/manual/javacprops.html#target

      【讨论】:

      • {{ant.build.javac.target=15}}
      猜你喜欢
      • 2014-03-08
      • 2011-06-19
      • 2016-04-26
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多