当我有8 8GB的可用内存时,我的虚拟内存不会超过2 8GB。
我正在运行安装了Java JRE 1.6_25的Ubuntu10.10 x86。
当我尝试启动.jar文件时,它立即崩溃了。
当我将VM设置为2048M
时,它可以正常工作
这些是我用来定义VM -Xmx4096M -Xms4096M
的参数
感谢您的帮助:)
发布于 2011-05-25 21:06:23
如果这是一个32位的VM,你不会比2G更高(或者接近3G,内核配置为3G/1G用户空间/内核地址空间分割)。没有办法让32位进程使用超过2G (或使用正确设置的3G )的实际内存。
您需要一个64位内核和JVM才能达到4G的堆空间(并且远远超出这个范围)。
有关32位应用程序在Linux上的内存限制,请参阅这个问题:Memory limit to a 32-bit process running on a 64-bit Linux OS。
(公认的答案是32位和64位内核。它还表明,在32位内核上,有一些补丁几乎可以达到4G的用户空间,但我认为Ubuntu内核中不会有这样的东西--一种nich服务器的东西。)
发布于 2011-05-25 21:17:57
如果需要这么大的Java程序,您应该强烈考虑迁移到64位操作系统。这将允许您使用64位JVM,从而允许大于2 2Gb的Java程序。
我不知道有什么程序可以轻松地从32位迁移到64位Ubuntu,但你可以保存你的主目录,然后重新安装。
然后,您就可以轻松地安装OpenJDK、Java和官方的Sun了。
https://stackoverflow.com/questions/6130927
复制