在 IntelliJ 中从 sbt 控制台设置 JVM 堆大小
Posted
技术标签:
【中文标题】在 IntelliJ 中从 sbt 控制台设置 JVM 堆大小【英文标题】:setting JVM heap size from sbt Console in IntelliJ 【发布时间】:2018-11-15 12:07:23 【问题描述】:在 IntelliJ 中运行我的应用时出现此错误:
[error] (ABCThread-1) java.lang.OutOfMemoryError: Java heap space
因此,当我从 SBT 控制台/SBT 操作运行我的 scala 应用程序时,我试图设置堆大小:
我使用以下内容: 在这里找到: Increase JVM heap size for Scala?
但是我得到了错误:
scala> -J-Xmx2g
<console>:12: error: object - is not a member of package scala
scala -J-Xmx2g
^
<console>:12: error: not found: value J
scala -J-Xmx2g
^
<console>:12: error: not found: value Xmx2g
scala -J-Xmx2g
^
有什么想法吗?谢谢
【问题讨论】:
设置 SBT_OPTS 可能会有所帮助,例如export SBT_OPTS="-Xmx2048m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=768m -Xss16m
@shengshanzhang 我得到这个错误:<console>:13: error: not found: value export export SBT_OPTS
如果我使用set SBT_OPTS
我得到<console>:13: error: not found: value set set SBT_OPTS
我尝试在环境变量中设置 SBT_OPTS,它对我来说很有魅力: SBT_OPTS: -Dsbt.override.build.repos=true -Xmx2048m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=768m -Xss16m 。来自 Intellij,您可以按照文档进行操作:jetbrains.com/help/idea/increasing-memory-heap.html
【参考方案1】:
转到IntelliJ preferences > Build,Execution,Deployement > compiler
。您将找到一个将堆大小设置为Build process heap size(Mbytes):
的选项。将其更改为更高的值。或许能解决问题。
【讨论】:
【参考方案2】:如果你使用IDEA,这个位置是你应该输入VM参数的地方
【讨论】:
你在 sbt shell 中设置了 fork := true 吗? 我正在使用 sbt 控制台 - sbt Shell 给了我一些依赖错误 - 所以,在 sbt 控制台中,没有 iam 没有使用set fork := true
实际上设置和导出不是 sbt Console 可用命令的一部分【参考方案3】:
1.在应用程序的运行/调试配置中编辑 VM 选项字段 你先来。 vmoptions 文件调整 IntelliJ 使用的内存,如果我没记错,你 IntelliJ 为执行您的应用程序而启动的 JRE 内存不足。在运行/调试配置的VM选项部分调整内存设置,例如:https://imgur.com/2YjvDW9 config setting
2.如果步骤 1 没有解决您的问题,如果您当前没有使用 IntelliJ IDEA,请切换到 64 位 JDK。
【讨论】:
感谢我使用的是 64 位 JDK,但我之前尝试过选项 1,但也没有用。以上是关于在 IntelliJ 中从 sbt 控制台设置 JVM 堆大小的主要内容,如果未能解决你的问题,请参考以下文章
intellij 与 sbt scala 和 android dev
为 Scala/SBT 设置 IntelliJ IDEA Ultimate
如何从 IntelliJ IDEA 的 bash 设置 SBT 以避免格式化字符被破坏?
使用 sbt 将 Scala 与 Hive 数据库连接起来,使用 IntelliJ 进行依赖