我使用以下命令运行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选项,以便我们可以 执行代码?
答案 0 :(得分:17)
您已超出JVM的最大堆大小。这是JVM和OS相关的。在大多数32位系统中,无论可用的物理内存如何,最大值都是2Gb。
答案 1 :(得分:11)
默认情况下,Java将以32位模式运行。一定要给它-d64选项,使其进入64位模式。一旦进入64位模式,分配6GB JVM就不会有任何问题。
答案 2 :(得分:4)
实际上,32位系统上的最大内存大小可能会有所不同,最高可达4 GB,但2 GB是一个常见值。通常可以重新链接内核以将其增加到3或3.5 GB。当然,问题是你没有地址空间来映射更多内存。你试过一台64位机器吗?
此外,请记住在执行此操作之前将ulimit设置得更高。