更新Intellij时遇到OutOfMemory错误。

7

我想将IntelliJ IDEA从版本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。


3
https://youtrack.jetbrains.com/issue/IDEA-139036 - Meo
似乎每个人在再次尝试时都随机地使其工作了...但对我来说不起作用。 - Kaspar
这是一个内存错误,而不是磁盘空间错误。通常有一些方法可以增加jvm的大小,但我不确定这在更新程序中如何工作。可能性很小,但你的JAVA_OPTS设置是什么? - vikingsteve
对它们一无所知,可能没有设置任何值。 - Kaspar
尝试另一种更新方式(下载完整包)。 - user180100
显示剩余2条评论
2个回答

14

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

我通过在更新窗口收到错误后保持该窗口打开来解决了这个问题。然后我运行了ps -Af | grep java(我正在运行Linux)。这显示了我更新进程的命令行。我将其复制出来,将-Xmx500m更改为-Xmx1024m。然后我在另一个控制台中运行了修改后的命令行,等它完成后,退出了原始更新窗口,一切正常。


这对我也非常有效(同样使用Linux)。关键是要保持错误窗口打开,然后运行修改后的命令。谢谢! - Minibiti

8

阅读JetBrains 文档此答案,了解如何增加IntelliJ的最大堆大小。

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

我还会执行文件 > 无效缓存/重启 > 无效并重启,以确保更改已生效(可能不是必要的,但以防万一)。

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

还可以查看YouTrack问题IDEA-139036(感谢@Meo)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接