为啥当我更改最大堆大小时 Eclipse 不打开?

Posted

技术标签:

【中文标题】为啥当我更改最大堆大小时 Eclipse 不打开?【英文标题】:Why eclipse does not open when I change the max heap size?为什么当我更改最大堆大小时 Eclipse 不打开? 【发布时间】:2012-08-04 03:31:15 【问题描述】:

我已经在 Eclipse 中安装了MAT 以及用于打开 IBM 格式堆转储的插件。 当我尝试使用 Eclipse 中的File->Open 打开堆转储时,我收到一个消息框错误消息:

在“从 'C:\UserData\heapdump.44124802.212242.6876.0003.phd' 解析堆转储”期间发生内部错误。 Java堆空间

我认为这是由于 Eclipse 中的最大堆大小造成的。目前eclipse.ini如下:

-启动插件/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222

-产品 org.eclipse.epp.package.jee.product --launcher.defaultAction 打开文件 --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction 打开文件 -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m

如果我按如下方式更改内存部分:

-Xms40m -Xmx1024m

然后eclipse甚至没有启动:

创建 Java 虚拟机失败

这里有什么问题?

【问题讨论】:

机器上的内存是多少? 您可以尝试删除这行--launcher.XXMaxPermSize 256m 这两行还是只留下--launcher.XXMaxPermSize 而没有256m 这通常是由于机器内存不足。另请注意,在 32 位的 Windows XP 上,VM 只能使用接近 2GB 的 RAM,即包括堆、永久生成空间、DLL 加载等。试试这个如果可以的话,64 位机器有更多的 RAM。 @Strelok:文件只有 300MB。为什么 2GB RAM 太小了? @Jim 好吧,不是 2GB。在您的情况下,512MB 是不够的。 2GB 可能就足够了,但您的机器似乎甚至无法分配 1GB,因为您可能没有足够的可用内存.. 【参考方案1】:

java -version 的命令行上使用Xms Xmx 值进行实验。如果您指定的那些值在那里工作,我怀疑PermGen 值需要以某种方式进行调整。如果没有,您的系统可能没有可用内存。

【讨论】:

【参考方案2】:

Java 需要连续的内存用于堆空间。尤其是 Windows,其可用内存的连续区域往往有限(如果其他程序正在运行,则该区域会更小)

另外,一般建议:设置-Dosgi.requiredJavaVersion=1.6,而不是1.5.

看看这些链接..

1. Java maximum memory 2. Why is the maximum size of the Java heap fixed?

【讨论】:

以上是关于为啥当我更改最大堆大小时 Eclipse 不打开?的主要内容,如果未能解决你的问题,请参考以下文章

eclipse为啥显示两个窗口

eclipse 出错,环境变量配置好了,有的时候可以用,有的时候就会报如下错误为啥

为啥我的Excel的字体大小更改不了呢?

更改按钮图像时,更改按钮大小。为啥?

已经安装过jdk,为啥打开eclipse时,还显示没有Java虚拟机

是否可以动态更改最大 Java 堆大小?