12

ソースコードをコンパイルして、jre 1.6 と互換性を持たせる必要があります。ただし、javac タスクのコンパイラ属性を javac1.6 に設定しようとすると、ant は依然として javac1.7 でコードをコンパイルします。また、コンパイラのバージョンを「最新」に設定しようとしましたが、役に立ちませんでした。

<target name="compile-tests">
    <javac compiler="javac1.6" includeantruntime="false" srcdir="${test.dir}"
     destdir="${build.dir}" >
        <classpath refid="class.path" />
    </javac>
</target>

私の JAVA_HOME は JDK 1.6 に設定されています。

echo $JAVA_HOME </code> gives: <code>
/usr/lib/jvm/java-6-openjdk-amd64/

私の ant バージョンは次のとおりです。Apache Ant(TM) バージョン 1.8.2

この投稿によると、ant は独自のコンパイラを使用しています。Ant のデフォルトをオーバーライドするにはどうすればよいですか? また、この投稿とアリのドキュメントによると、グローバルな build.compiler プロパティを設定できます。そのプロパティを何に設定し、どのように設定すればよいでしょうか?

4

5 に答える 5

40

javacタスクで、次のように属性を設定して Java コンパイラを指定してみてくださいexecutable

<property name="JDK1.6.dir" location="/usr/lib/jvm/java-6-openjdk-amd64" />
<property name="javac1.6" location="${JDK1.6.dir}/bin/javac" />

<target name="compile-tests">
  <javac executable="${javac1.6}" 
      fork="yes"
      includeantruntime="false" 
      srcdir="${test.dir}"
      destdir="${build.dir}" >
    <classpath refid="class.path" />
  </javac>
</target>
于 2012-07-18T23:19:28.023 に答える
4

compilerAnt属性は、コンパイラでサポートされているプロパティを知るためだけのものだと思います。一般にjavac、コンパイラに渡す属性またはオプションはですtarget

Java6コンパイラをインストールする必要はありません。

于 2012-07-19T00:06:38.383 に答える
1

Ant javac タスクの「target」属性を使用して、クラス ファイルに互換性を持たせたい Java のバージョンを定義します (この場合は「1.6」に設定します)。詳細については、タスクのドキュメントを参照してください。

于 2012-07-19T16:16:21.077 に答える