Apache Ant java 目标中的 maxmemory 标志究竟有什么作用?

What does maxmemory flag in Apache Ant java target exactly do?

采用以下 build.xml 片段:

  <target name="run">
      <java
        jar="${server-jar}"
        fork="true"
        failonerror="true"
        maxmemory="1g">
          <jvmarg line="${env.JVM_ARGS}"/>
      </java>
  </target>

maxmemory 标志到底有什么作用?它是否设置堆内存 initial/max 大小?我收到堆错误并试图了解此标志是否足够,或者我必须在 JVM_ARGS.

中分别设置 -Xmx-Xms

ant java 目标中 maxmemory 的文档对我来说很模糊:

maxmemory: Max amount of memory to allocate to the forked JVM, ignored if fork is false

maxmemory 指定 Java VM 可用的最大堆大小。

根据 Java task class 的 JavaDoc:

Corresponds to -mx or -Xmx depending on VM version.

源代码中引用了here.

而且,是的,Xmx 是堆的设置:

Specifies the maximum size (in bytes) of the heap.

(您可能还会在 Javadoc 中看到有关其他一些 Ant <java> 任务设置的更多信息。)