避免初始内存堆大小错误

我使用以下命令运行Java代码:

$ java -Xms4G -Xmx4G myjavacode 

我的CPU的RAM容量是6GB。

但是它总是无法执行给我这个错误消息:

 Invalid initial heap size: -Xms5G The specified size exceeds the maximum representable size. Could not create the Java virtual machine 

有没有办法设置Java选项,以便我们可以执行代码?

您已超过JVM的最大堆大小。 这是JVM和OS相关的。 在大多数32位系统中,无论可用的物理内存如何,最大值都是2Gb。

默认情况下,Java将以32位模式运行。 一定要给它-d64选项,使其进入64位模式。 一旦进入64位模式,分配6GB JVM就不会有任何问题。

实际上,32位系统上的最大内存大小可能会有所不同,最高可达4 GB,但2 GB是常见值。 通常可以重新链接内核以将其增加到3或3.5 GB。 当然,问题在于你没有地址空间来映射更多内存。 你试过一台64位机器吗?

此外,请记住在执行此操作之前将ulimit设置得更高。