我目前正在SL4集群上使用sun的java 1.6。
由于某种原因,1.6 JVM以一个不可能的大堆启动,无法启动:
java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
如果我用例如-Xmx1800M,然后就可以了。那么,我想知道默认堆大小的设置位置,更重要的是如何更改它?
该机器具有8GB的物理内存,我相信sun的服务器JVM应该以默认的一半内存开始,最高可达512M,但显然并非如此,因为它试图分配超过1800M。 / p> 编辑:我意识到可以使用_JAVA_OPTIONS,但这感觉有点笨拙;我在某个地方期待一个属性文件,但到目前为止我一直无法找到它。
答案 0 :(得分:1)
此处没有属性文件。根据{{3}}:
初始堆大小:
大约1/64的机器 机器上的物理内存或一些 合理的最低限在J2SE 5.0之前, 默认的初始堆大小是a 合理的最小值,因而有所不同 平台。你可以覆盖它 默认使用-Xms命令行 选项。
最大堆大小:
小于物理的1/4 内存或1GB。在J2SE 5.0之前, 默认最大堆大小为64MB。 您可以使用覆盖此默认值 -Xmx命令行选项。
<小时/> 注意:为堆大小指定的边界和分数是正确的 对于J2SE 5.0。他们很可能是 在后续版本中有所不同 电脑变得更强大。
假设您有8GB的RAM,假设您使用的是Java 6,则默认的最大堆大小应为1GB。
答案 1 :(得分:1)
没有标准属性文件。 (Sun)JVM具有硬编码的默认值。