【问题标题】:Getting a OutOfMemory error when attempting to update my Intellij尝试更新 Intellij 时出现 OutOfMemory 错误
【发布时间】:2015-04-14 18:41:07
【问题描述】:

我正在尝试将 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。

【问题讨论】:

  • 似乎是每个人在重试时都会随机运行...对我不起作用。
  • 这是内存错误,不是磁盘空间错误。通常有一些方法可以增加 jvm 的大小,但我不确定这如何与更新程序一起使用。长镜头,也许 - 你的 JAVA_OPTS 设置是什么,如果有的话?
  • 不知道它们,可能没有设置任何东西。
  • 尝试其他更新方式(下载完整包)

标签: java intellij-idea


【解决方案1】:

我遇到了同样的问题。问题是idea.vmoptions 更改了主intellij 进程的内存,而不是更新进程。就我而言,更新过程只分配了 500m。

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

【讨论】:

  • 这对我也很有效(也使用 Linux)。关键是让错误窗口保持打开状态,然后运行修改后的命令。谢谢!
【解决方案2】:

阅读 JetBrains documentationthis answer,了解如何增加 IntelliJ 的最大堆大小。

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

我也会这样做 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)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多