Scala 启动shell脚本,简化后的scala REPL 启动命令大致如下所示:
java -Xmx256M -Xms32M \
-Xbootclasspath/a:jline.jar:scala-compiler.jar:scala-library.jar:scalap.jar \
-Dscala.usejavacp=true -Dscala.home=/home/itang/dev-env/typesafe-stack \
-Denv.emacs= \
scala.tools.nsc.MainGenericRunner scala.tools.nsc.CompileServer
经过简单分析得出:
1 Scala命令设置JVM参数的规则:
scala对JVM参数设定分两部分:
A 获取环境变量JAVA_OPTS,如果未设定则默认为:-Xmx256M -Xms32M
B Scala命令参数以-D和-J打头的部分
-D像Java一样,用于设定全局变量值
-J打头的后面的部分会提取为JVM参数, 如:
scala -J-Xmx512m -J-server 相当于java -Xms512 -server
2 JVM 重复的参数设定后声明的会覆盖之前的:
如:
$ export JAVA_OPTS="-Xmx256M -Xms32M"
$ scala -J-Xmx512M
此时,最大堆内存大小为512M
有时默认的Scala设置不满足要求, 如在Scala REPL里测试大量数据:
val lar