sbt, "java.lang.OutOfMemoryError: Java heap space"
sbt, "java.lang.OutOfMemoryError: Java heap space"
我正在尝试通过以下方式复制 openie4.0 程序:
https://github.com/knowitall/openie
环境是
Ubuntu: 18.04,
斯卡拉:2.10.2,
Java: 1.7.0_80,
sbt: 0.13.18,
我成功完成了“运行 sbt:”这一步
'''
某人 'run-main edu.knowitall.openie.OpenIECli'
'''
然而,我一直面临
的问题
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
当我开始创建独立 jar 时,使用时:
sbt clean compile assembly
正在尝试
“sbt -J-Xmx2700M clean compile assembly”(或更大,比如 10g,我的电脑上有 64g)
以上out of memeory问题继续加:
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
[error] Not a valid command: J-Xmx10g
[error] Not a valid project ID: J-Xmx10g
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: J-Xmx10g
[error] J-Xmx10g
[error]
这非常令人困惑,为什么这个命令不是一个有效的命令,我没有找到解决这个问题的方法。
后来我尝试设置通用JAVA_OPTS,但没有用。
然后我接受了 user972946(最后一个)的建议,这表明它自默认设置以来就被覆盖了。
How to set heap size for sbt?.
然后按照他的建议修复后尝试,还是一样.....
env JAVA_OPTS="-Xmx41200m" sbt clean compile assembly
我也采纳了上面 Mike 和 Cassio 的建议 link...根本不起作用。
非常感谢对此的任何建议。
非常感谢。
赫兹
尝试在 运行 之前导出此环境变量:
export SBT_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=10G -Xmx10G -Xms10G"
或者,SBT 允许我们在名为 .jvmopts
的文件上指定 JVM 选项。在项目的根目录中创建一个名为 .jvmopts
的文件并将其放入:
-Xms1g
-Xmx4g
如果您查看以下行:
[error] Not a valid command: J-Xmx10g
您的 sbt 无法将此解析为有效选项,因为您使用的是 java 7,所以可以发布(确保 java7 接受 -Xmx$size
作为有效参数) ,同样的事情也适用于 sbt 0.13(它已经很老了)。还必须有一个文件或与部署相关的东西(指南或 CI/CD 文件或其他东西),您可以从中获得有关如何 运行 项目的帮助。 (如果你使用 java 8 应该没问题)
我正在尝试通过以下方式复制 openie4.0 程序: https://github.com/knowitall/openie
环境是 Ubuntu: 18.04, 斯卡拉:2.10.2, Java: 1.7.0_80, sbt: 0.13.18,
我成功完成了“运行 sbt:”这一步 ''' 某人 'run-main edu.knowitall.openie.OpenIECli' '''
然而,我一直面临
的问题java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
当我开始创建独立 jar 时,使用时:
sbt clean compile assembly
正在尝试 “sbt -J-Xmx2700M clean compile assembly”(或更大,比如 10g,我的电脑上有 64g) 以上out of memeory问题继续加:
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
[error] Not a valid command: J-Xmx10g
[error] Not a valid project ID: J-Xmx10g
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: J-Xmx10g
[error] J-Xmx10g
[error]
这非常令人困惑,为什么这个命令不是一个有效的命令,我没有找到解决这个问题的方法。
后来我尝试设置通用JAVA_OPTS,但没有用。 然后我接受了 user972946(最后一个)的建议,这表明它自默认设置以来就被覆盖了。 How to set heap size for sbt?.
然后按照他的建议修复后尝试,还是一样.....
env JAVA_OPTS="-Xmx41200m" sbt clean compile assembly
我也采纳了上面 Mike 和 Cassio 的建议 link...根本不起作用。
非常感谢对此的任何建议。
非常感谢。 赫兹
尝试在 运行 之前导出此环境变量:
export SBT_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=10G -Xmx10G -Xms10G"
或者,SBT 允许我们在名为 .jvmopts
的文件上指定 JVM 选项。在项目的根目录中创建一个名为 .jvmopts
的文件并将其放入:
-Xms1g
-Xmx4g
如果您查看以下行:
[error] Not a valid command: J-Xmx10g
您的 sbt 无法将此解析为有效选项,因为您使用的是 java 7,所以可以发布(确保 java7 接受 -Xmx$size
作为有效参数) ,同样的事情也适用于 sbt 0.13(它已经很老了)。还必须有一个文件或与部署相关的东西(指南或 CI/CD 文件或其他东西),您可以从中获得有关如何 运行 项目的帮助。 (如果你使用 java 8 应该没问题)