问题描述
|
当我有8GB可用空间时,我的虚拟内存不会超过2GB。
我正在运行安装了Java JRE 1.6_25的Ubuntu 10.10 x86。
当我尝试启动.jar文件时,它立即崩溃。
当我将VM设置为
2048M
时,它可以正常工作
这些是我用来定义VM-Xmx4096M -xms4096M
的参数
感谢您的帮助:)
解决方法
如果那是32位VM,那么您将不会高于2G(或将内核配置为3G / 1G用户空间/内核地址空间拆分的情况下接近3G)。 32位进程无法使用超过2G(或具有正确设置的3G)的实际内存。
您将需要64位内核和JVM才能达到4G的堆空间(并且要远远超出此范围)。
有关32位应用程序在Linux上的内存限制的详细信息,请参见此问题:在64位Linux OS上运行的32位进程的内存限制。
(接受的答案同时讨论了32位和64位内核。这还表明存在一些补丁,您可以在32位内核上接近4G的用户空间,但是我认为Ubuntu内核中没有这些东西-有点像服务器。)。
,如果需要那么大的Java程序,则应强烈考虑迁移到64位操作系统。这将允许您使用64位JVM,该JVM允许2Gb以上的Java程序。
我不知道可以轻松地从32位迁移到64位Ubuntu的过程,但是您可以保存主目录,然后重新安装。
然后,您可以轻松地安装OpenJDK Java,并花费更多的精力来安装官方的Sun JDK。