2

我有一个带有以下标头的 scala shell 脚本:

#! /bin/sh
env JAVA_OPTS="-Xmx20g"
exec scala -classpath ./target/scala-2.9.1/classes:lib/* "$0" "$@"
!#

不幸的是,无论我如何设置 JAVA_OPTS 变量,程序都会因内存不足错误而终止。

如何在这样的 shell 脚本中正确配置堆大小而不弄乱全局 JAVA_OPTS 环境变量?

4

2 回答 2

4

来自 Scala 帮助:

到达 java 运行时的 scala 选项:

...

-J<arg> -J 被剥离并按原样传递给 java

因此,您可以-J-Xmx20g向 scala 添加参数。

于 2013-01-16T20:31:44.707 回答
1

为 Scala REPL 使用的 JVM 提供命令行选项:

$ env JAVACMD=JAVA JAVA_OPTS="-Xmx1024M -Xms16M -Xss16M" scala

从 REPL 验证:

val r = Runtime.getRuntime
println("Memory usage: "+ (r.totalMemory - r.freeMemory) + " of " + r.maxMemory)

内存使用量:66712264 of 954728448

于 2013-01-16T21:14:26.247 回答