java程序中的更多内存分配

java程序中的更多内存分配,java,memory,ubuntu,Java,Memory,Ubuntu,我使用ubuntu 10.04 LTS 64位,我的系统有4 GB内存 我运行的java程序需要超过1.1GB的内存,但操作系统不允许我的程序获得超过1.1GB的内存,而只使用2.1GB的RAM,1.9GB的空闲内存,这是什么问题?(这个问题不只是针对这个程序,我运行另一个程序时也遇到了同样的问题。) 我该怎么办?听起来您的程序被编译为32位程序,尽管您运行的是64位配置。看起来您运行的是java应用程序。确保 如果需要超过4GB的内存,请运行64位JVM。要使其工作,您应该有一个64位操作系

我使用ubuntu 10.04 LTS 64位,我的系统有4 GB内存

我运行的java程序需要超过1.1GB的内存,但操作系统不允许我的程序获得超过1.1GB的内存,而只使用2.1GB的RAM,1.9GB的空闲内存,这是什么问题?(这个问题不只是针对这个程序,我运行另一个程序时也遇到了同样的问题。)


我该怎么办?

听起来您的程序被编译为32位程序,尽管您运行的是64位配置。

看起来您运行的是java应用程序。确保

  • 如果需要超过4GB的内存,请运行64位JVM。要使其工作,您应该有一个64位操作系统
  • 通过JVM开关增加最大堆大小
    -Xms-Xmx

ulimit-a当您使用用于这些程序的同一用户运行它时,它告诉您什么?它说最大内存大小是不受限制的。我使用eclipse运行我的项目,所以我认为这不可能是问题所在。您会遇到什么具体错误,你是如何链接程序的?还有你的
ulimit-a
是什么样子的?我得到了这个错误:
java.lang.OutOfMemoryError:GC开销限制超过了
,所以你没有运行本机程序(即不是用C编写的)但是一个Java解释程序——您可能需要检查您正在使用的JRE,我打赌它是32位版本。