我最近安装了eclipse indigo并将我的项目从eclipse ganymede移到了它。当我“构建”项目时,我收到以下错误。
'Building Workspace' has encounted a problem
An internal error occurred during: "Building Workspace".
错误的详细信息如下:
An internal error occurred during: "Building Workspace".
Java heap space
我通过编辑'eclipse.ini'将内存增加到1024米,如下所示:
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
1024M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1024m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=1024m
如果我做了一个小项目(比如'Hello World'),那么一切都运行良好。对于旧版本的eclipse,我没有遇到这个问题。
这是记忆问题吗?
[更新]
我解决了这个问题。我删除了-XX:MaxPermSize = 1024m并将其替换为-Xms40m 和-Xmx1024m。我现在能够编译和构建我的项目。
但我仍然不明白为什么我以前的eclipse.ini配置不起作用。它在我朋友的电脑上工作得很好(x64)。
现在这次日食与前一日食相比非常缓慢。更新用户库需要永远。
Indigo是否针对x64进行了优化?我正在运行带有JRE 1.6的32位Windows 7。
答案 0 :(得分:0)
(编辑:包括我自己的eclipse.ini)
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
/usr/lib/jvm/java-6-sun-1.6.0.26/bin
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=512m
-Xms40m
-Xmx1536m
答案 1 :(得分:0)
你最初的问题
An internal error occurred during: "Building Workspace".
Java heap space
就是这样:你的堆空间用完了。但是,您的初始修复不正确:不是将最大堆大小增加到1024m,而是将permanent generation大小增加到1024m,这不会(并且没有......)解决您的问题。
然后尝试将perm gen和最大堆大小设置为1024m,这也不起作用,因为你没有足够的内存来分配2 GB:因此,eclipse根本无法启动。
你将MaxPermSize保留为默认值,Xms40m和Xmx1024m。由于这些设置,Eclipse可能会因为至少两个原因而变慢:
一个,你已告诉JVM以40米开始并长到1024米。这种增长本身可能很慢,因此您可能希望通过简单地将它们设置为相同的值来将其删除为潜在问题:Xms1024m和Xmx1024m。
两个,1024米可能根本不足以满足您项目的规模。您可以尝试进一步增加它,但使用32位Windows机器,您无法获得更大的功能。在这种情况下,您将不得不升级到64位操作系统和Eclipse版本。
还有其他潜在问题。例如,您可能必须从默认值稍微增加永久生成大小。最后这是一个GC调优问题,这是一个很大的话题。如果以上两种方案都不可能做一些研究。
请注意,这些设置(-XX:MaxPermSize
,Xmx
,Xms
)不是Indigo设置。它们是JVM设置(包含文档,取决于它是standard option还是non-standard one),用于配置运行Indigo(作为Java应用程序)的JVM。
最后,回答你的一个问题:Indigo不是“针对64位进行优化”。有32位版本和64位版本,您应该使用正确的OS和JVM位。