Java.lang.OutOfMemoryError: Java heap space [Ubuntu]

Java.lang.OutOfMemoryError: Java heap space [Ubuntu]

我正在尝试 运行 我的代码,但我在我的控制台上遇到了这个错误

 [java] Caused by: java.lang.OutOfMemoryError: Java heap space

i 运行 jdk 文件夹上的 Jconsole 最大堆 1.9m,我该如何更改它?

您可以使用 -Xmx size 命令行参数配置最大堆大小。 默认情况下它是 64mb。你看到的1.9m有点奇怪

这是 java 命令的 Oracle 文档: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html

具体来说:

-Xmxsize

Specifies the maximum size (in bytes) of the memory allocation pool in bytes. This value must be a multiple of 1024 and greater than 2 MB. Append the letter k or K to indicate kilobytes, m or M to indicate megabytes, g or G to indicate gigabytes. The default value is chosen at runtime based on system configuration. For server deployments, -Xms and -Xmx are often set to the same value. See the section "Ergonomics" in Java SE HotSpot Virtual Machine Garbage Collection Tuning Guide at http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html.

The following examples show how to set the maximum allowed size of allocated memory to 80 MB using various units:

-Xmx83886080
-Xmx81920k
-Xmx80m
The -Xmx option is equivalent to -XX:MaxHeapSize.

对于hybris,需要更新tomcat.generaloptions 属性来调整Xmx值。例如,通过 local.properties。 -Xmx2G 是默认值。

tomcat.generaloptions=-Xmx4G -ea -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dorg.tanukisoftware.wrapper.WrapperManager.mbean=true -Djava.endorsed.dirs="%CATALINA_HOME%/lib/endorsed" -Dcatalina.base=%CATALINA_BASE% -Dcatalina.home=%CATALINA_HOME% -Dfile.encoding=UTF-8  -Djava.util.logging.config.file=jdk_logging.properties -Djava.io.tmpdir="${HYBRIS_TEMP_DIR}"