尝试更新我的Intellij时出现OutOfMemory错误

时间:2015-04-14 18:41:08

标签: java intellij-idea

我正在尝试将IntelliJ IDEA从build 141.177更新为141.178。 当更新下载所需的所有文件并开始更新时,我收到此错误:

Temp. directory: /tmp

java.lang.OutOfMemoryError: Java heap space
    at ie.wombat.jbdiff.JBPatch.bspatch(JBPatch.java:91)
    at com.intellij.updater.BaseUpdateAction.applyDiff(BaseUpdateAction.java:112)
    at com.intellij.updater.UpdateAction.doApply(UpdateAction.java:44)
    at com.intellij.updater.PatchAction.apply(PatchAction.java:184)
    at com.intellij.updater.Patch$3.forEach(Patch.java:308)
    at com.intellij.updater.Patch.forEach(Patch.java:360)
    at com.intellij.updater.Patch.apply(Patch.java:303)
    at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:84)
    at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:75)
    at com.intellij.updater.Runner.doInstall(Runner.java:295)
    at com.intellij.updater.Runner.access$000(Runner.java:18)
    at com.intellij.updater.Runner$2.execute(Runner.java:261)
    at com.intellij.updater.SwingUpdaterUI$5.run(SwingUpdaterUI.java:191)
    at java.lang.Thread.run(Thread.java:745)

/tmp文件夹应位于我的根分区上,其大小为20GiB,目前仍然剩下大约8GiB。所以我现在真的不明白这里可能出现的问题。另外,我不确定RAM部分,我的系统在进行更新时使用了40%的RAM。

2 个答案:

答案 0 :(得分:13)

我遇到了同样的问题。问题是idea.vmoptions改变主intellij进程的内存,但不更改更新进程。在我的情况下,更新过程只分配了500米。

我在错误发生后让更新窗口保持打开状态,从而解决了这个问题。然后我跑ps -Af | grep java(我正在运行linux)。这向我展示了更新过程的命令行。我将其复制并将-Xmx500m更改为-Xmx1024m。然后我在另一个控制台中运行修改过的命令行,一旦完成,我退出原始更新窗口,一切都很好。

答案 1 :(得分:8)

阅读JetBrains documentation& this answer关于如何增加IntelliJ的最大堆大小。

-Xmx2048m(32位版本)或idea.vmoptions(64位版本)中设置idea64.vmoptions,并根据我上面提到的文档将其复制到适当的位置

我也会做File > Invalidate Caches / Restart > Invalidate and Restart,只是为了确保所做的更改(可能没有必要,但以防万一)。

我尝试通过自动更新程序从14.1.1升级到14.1.2时收到完全相同的堆栈跟踪。在OS X上,我通过将~/Library/Preferences/IdeaIC14/idea.vmoptions重命名为idea64.vmoptions来解决此问题。我已经在该文件中设置了-Xmx2048m,但显然在我正确重命名之前它没有被读取。

另见YouTrack问题IDEA-139036(感谢@Meo)。