概要

Antを実行するとOutOfMemoryErrorが発生する場合の処置方法について解説しています。


  • 注: Java 8では、これらの設定をしなくても、OutOfMemoryErrorは発生しないはず?

javacタスク

javacタスクなどでOutOfMemoryErrorが発生する場合、以下のようなユーザー環境変数(またはシステム環境変数)を設定してantが使用できるメモリサイズを増加しておく必要があります。

変数名: ANT_OPTS
変数値: -Xmx256m
ant_opts.png

javacタスクのオプションで、memoryMaximumSize属性などを使用する方法もあります(fork="true"も必要)。

<javac srcdir="${src}"
       destdir="${build}"
       fork="true"
       memoryInitialSize="128m"
       memoryMaximumSize="256m"
/>

javaタスク

javaタスクの場合は、maxmemory属性を使用する方法もあります。

<java jar="${relaxer.home}/Relaxer.jar" fork="true" maxmemory="256m">
  <!-- arg value="-Xmx256m"/ ←は意味が無い? -->
  <arg value="-dir:${build.src}/relaxer"/>
  <arg value="-properties:${basedir}/Relaxer.properties"/>
  <arg value="${src.dir}/relaxng/xslfo.rng"/>
  <classpath>
    <fileset dir="${relaxer.home}" includes="*.jar"/>
  </classpath>
</java>

コメント