我正试图通过以下方式复制openie4.0程序:https://github.com/knowitall/openie
环境是Ubuntu:18.04,Scala:2.10.2,Java:1.7.0_80,sbt:0.13.18,
我设法走上了";与sbt一起运行:";"sbt‘run main edu.nknowitall.openie.OpenIECli’''
然而,我一直面临的问题
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
当我进入创建独立的jar时,当使用:时
sbt clean compile assembly
在尝试时"sbt-J-Xmx2700M清洁编译组件";(或者更大,比如10克,我的电脑上有64克(以上的模因外问题仍在继续加上:
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(最后一个(的建议,这些建议建议自默认设置以来已被覆盖。如何设置sbt的堆大小?。
然后按照他的建议进行修复,但还是一样。。。。。
env JAVA_OPTS="-Xmx41200m" sbt clean compile assembly
我也从上面的链接中接受了迈克和卡西奥的建议。。。根本不起作用。
非常感谢您对此提出的任何建议。
非常感谢。HZ
如果您查看以下行:
[error] Not a valid command: J-Xmx10g
您的sbt无法将其解析为有效选项,因为您使用的是java7(请确保java7接受-Xmx$size
作为有效参数(,所以可以发出此选项,sbt 0.13(相当旧(也是如此。还必须有一个文件或与部署相关的东西(指南或CI/CD文件或其他东西(,您可以从中获得如何运行项目的帮助。(如果你使用java8,一切可能都会好起来(
根据Baeldung:
在运行之前尝试导出此环境变量:
export SBT_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=10G -Xmx10G -Xms10G"
或者,SBT允许我们在名为.jvmopts
的文件上指定JVM选项。在项目的根目录中创建一个名为.jvmopts
的文件,并将其放入:
-Xms1g
-Xmx4g