JVM 堆的调整

执行 java -Xmx256m 正常再
执行此命令时 java -Xms128m 报错:
Error occurred during initialization of VM
Incompatible initial and maximum heap sizes specified
但是把 128M 换成 64M 以下就正常
我怀疑最大允许容量并没有增大,我应当怎么做?

如果我没记错的的话JVM默认的-Xmx 是64m
java -Xms128m 当然就会报错了
ms是最小mx是最大
最小怎能超过默认最大
java -Xms128m -Xmx128m就没问题了

运行此java -Xms128m -Xmx128m 命令后JVM的
最小堆容量应是128M,最大是128M。我再单独运行
ms时只要大于64M还是报错:
Error occurred during initialization of VM
Incompatible initial and maximum heap sizes specified

每次都是不同的JVM,没什么关系

我的程序要并发的画几个大图,当执行 java -Xmx256m 命令
测试时执行正常,可是放到 TOMCAT 上时就报错:
java.lang.OutOfMemoryError
<<no stack trace available>>
我在 TOMCAT 的 setclasspath.bat 文件中设置了
set _RUNJAVA="%JAVA_HOME%\bin\java -Xms256M -Xmx256M"
可还是不可以。

要画这么大的图?
最好换个实现方法,在web里实现本身就不好

如果你确认setclasspath.bat文件在Tomcat启动时能够被调用
就再改大一点吧

多谢 oldma 前辈。我的问题解决了,原因是 TOMCAT 根本没有读取
setclasspath.bat 文件,我把 TOMCAT 换成同版本的拷贝版就可
以了,把 setclasspath.bat 文件要更改成 set _RUNJAVA="%JAVA_HOME%\bin\java" -Xmx256m 形式,而非set _RUNJAVA="%JAVA_HOME%\bin\java -Xmx256m"形式

上一设置在 Windows下正常,但在 Linux 下设置 setclasspath.sh 文件后
不能正常运行,请问设置 setclasspath.sh 文件的格式是什么?

bash:

#!/bin/sh
xxx=......
export xxx

csh:

#!/bin/sh

setenv xxx=....

#!/bin/csh

setenv xxx=...

大哥我没有看明白,能具体一点吗?谢谢。

问题已经解决,谢谢