为啥当我更改最大堆大小时 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 出错,环境变量配置好了,有的时候可以用,有的时候就会报如下错误为啥