在eclipse indigo中构建项目时出现以下错误:
An internal error occurred during: "Compacting resource model". Java heap.
这是内存问题吗?
是否可以在eclipse中编译单个包(类似于netbeans)?我在netbeans中遇到了类似的内存问题但我通过一次编译少量的软件包来解决它。
我在ganemede编译了同样的项目没有任何问题。
更新
堆栈跟踪:
!ENTRY org.eclipse.core.jobs 4 2 2012-03-07 09:39:49.520
!MESSAGE An internal error occurred during: "Compacting resource model".
!STACK 0
java.lang.OutOfMemoryError: Java heap space
at java.util.HashMap.newKeyIterator(Unknown Source)
at java.util.HashMap$KeySet.iterator(Unknown Source)
at java.util.HashSet.iterator(Unknown Source)
at org.eclipse.core.internal.jobs.JobManager.findBlockingJob(JobManager.java:685)
at org.eclipse.core.internal.jobs.JobManager.doRunNow(JobManager.java:1085)
at org.eclipse.core.internal.jobs.JobManager.runNow(JobManager.java:1080)
at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:89)
at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:286)
at org.eclipse.core.internal.utils.StringPoolJob.run(StringPoolJob.java:101)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
!ENTRY org.eclipse.core.jobs 4 2 2012-03-07 09:39:49.521
!MESSAGE An internal error occurred during: "Build Project".
!STACK 0
java.lang.OutOfMemoryError: Java heap space
at org.eclipse.wst.jsdt.core.compiler.CharOperation.concat(CharOperation.java:689)
at org.eclipse.wst.jsdt.core.infer.InferEngine.createAnonymousTypeName(InferEngine.java:682)
at org.eclipse.wst.jsdt.core.infer.InferEngine.createAnonymousType(InferEngine.java:658)
at org.eclipse.wst.jsdt.core.infer.InferEngine.visit(InferEngine.java:2072)
at org.eclipse.wst.jsdt.internal.compiler.DelegateASTVisitor.visit(DelegateASTVisitor.java:855)
at org.eclipse.wst.jsdt.internal.compiler.ast.ObjectLiteral.traverse(ObjectLiteral.java:66)
at org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:459)
at org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration.traverse(MethodDeclaration.java:174)
at org.eclipse.wst.jsdt.internal.compiler.ast.FunctionExpression.traverse(FunctionExpression.java:48)
at org.eclipse.wst.jsdt.internal.compiler.ast.ObjectLiteralField.traverse(ObjectLiteralField.java:63)
at org.eclipse.wst.jsdt.internal.compiler.ast.ObjectLiteral.traverse(ObjectLiteral.java:69)
at org.eclipse.wst.jsdt.internal.compiler.ast.ObjectLiteralField.traverse(ObjectLiteralField.java:63)
at org.eclipse.wst.jsdt.internal.compiler.ast.ObjectLiteral.traverse(ObjectLiteral.java:69)
at org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:459)
at org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration.traverse(MethodDeclaration.java:174)
at org.eclipse.wst.jsdt.internal.compiler.ast.FunctionExpression.traverse(FunctionExpression.java:48)
at org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:455)
at org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:584)
at org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:539)
at org.eclipse.wst.jsdt.core.infer.InferEngine.doInfer(InferEngine.java:1747)
at org.eclipse.wst.jsdt.internal.compiler.parser.Parser.inferTypes(Parser.java:7093)
at org.eclipse.wst.jsdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:561)
at org.eclipse.wst.jsdt.internal.compiler.Compiler.beginToCompile(Compiler.java:328)
at org.eclipse.wst.jsdt.internal.compiler.Compiler.compile(Compiler.java:342)
at org.eclipse.wst.jsdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:288)
at org.eclipse.wst.jsdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:86)
at org.eclipse.wst.jsdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:254)
at org.eclipse.wst.jsdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:58)
at org.eclipse.wst.jsdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:291)
at org.eclipse.wst.jsdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:194)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
答案 0 :(得分:1)
从eclipse目录中打开eclipse配置(eclipse.ini)文件夹
-vmargs -Xms128m -Xmx512m -XX:MaxPermSize参数=128米
放置此代码......它的工作对我来说
答案 1 :(得分:0)
我将-Xmx增加了1GB,从3增加到4(-Xmx4120m),我仍然让Eclipse做了一些洗衣(从我的操作系统中取出了4.5 GB),但至少我能够工作(编辑)并保存文件)。以前,有3GB,我不能 - Eclipse变白了。 另外 - 我关闭了3个我没有使用的项目。
答案 2 :(得分:0)
您需要更多的堆 (RAM)。
-Xmx
在 eclipse.ini 文件中(对于我在 Linux Ubuntu 上,它在这里:"/home/my_username/eclipse/cpp-2019-12/eclipse/ eclipse.ini") 指定您授权 Eclipse 使用的最大堆空间 (RAM)。给它更多。如果 -Xmx512m
(512 MB) 的 RAM 不够用,请尝试更多:-Xmx1024m
或 -Xmx2048m
等,直到足够并且您不再崩溃为止。
我在我的 Eclipse 文档中谈到了这个:
Eclipse 很强大,但它是一个可怕的可怕的记忆猪。在某些存储库的某些机器上,我将其设置为 -Xmx32768
(32 GB--是的--坚果--但尝试让 Eclipse 索引包含 Boost 库的大型存储库,但这仍然不够)。>