【问题标题】:java.lang.OutOfMemoryError: Java heap space in IntelliJjava.lang.OutOfMemoryError:IntelliJ 中的 Java 堆空间
【发布时间】:2016-05-09 20:29:41
【问题描述】:

我已将 SBT 项目导入 IntelliJ(版本 14)。当我试图在终端中运行某些东西时,控制台输出给了我“java.lang.OutOfMemoryError: Java heap space”。 我尝试在 *.vmoptions 以及 SBT 项目的 IDE 构建设置中增加大小(Xms2048mXmx2048m)。我也重新启动了我的机器。什么都没有解决。 除了我尝试过的东西之外,还有什么其他的输入吗?

P.S:我正在通过激活器运行项目。当我从 IntelliJ 命令提示符执行此操作时,它会向我抛出错误,但是当我从 Windows 命令提示符运行激活器时,它会成功运行应用程序。

【问题讨论】:

  • 让我们尝试一下,而不是更改文件设置。设置(Mac 上的首选项) -> 编译器 -> Java 编译器 -> 最大堆大小(MB),并增加大小,然后重新启动 IntelliJ
  • @Gavin 是的,我的意思是 IntelliJ 中的终端窗口
  • @Rafal,我在 Windows 上工作,在编译器的设置中看不到最大堆大小
  • 我现在无法访问 Windows。让我们在这里检查一下:jetbrains.com/help/idea/2016.1/…
  • 我在 windows 中看到了设置(在 IntelliJ IDE 内部-->设置-->编译器-->JavaCompiler)。我没有为 intelliJ 声明任何环境变量,所以这对我不起作用。

标签: java intellij-idea heap-memory typesafe-activator


【解决方案1】:

您刚刚询问了您的 IDE:

  • -Xms2048m - 要求 VM 在启动时分配 2048MB (2GB) 堆
  • -Xmx2048m - 将堆限制为 2048MB

原因可能是:

  • 您尝试超过 2048MB
  • 无法在启动时分配 2048MB(您可能刚刚用完了 RAM)
  • 系统认为如此快速的分配是恶意软件。

【讨论】:

    【解决方案2】:

    我认为您需要将内存设置作为参数提供给您在控制台上运行的命令。

    据我所知,在 IntelliJ 中设置的任何参数都只能用于 IntelliJ 本身,并且当您从 SBT 窗口运行项目时(我假设它像 maven 窗口一样工作)。 此外,据我所知,IntelliJ 中的终端窗口只是主机系统底层控制台的“通道”。

    不确定你是否需要它,但这似乎是对内存设置的一个很好的解释,并链接到重复的答案:What are the Xms and Xmx parameters when starting JVMs?

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 2016-04-17
      • 1970-01-01
      • 2011-10-27
      • 2011-05-03
      • 2014-04-13
      • 2011-12-26
      • 2019-02-09
      • 1970-01-01
      相关资源
      最近更新 更多