文章目录
- Scala项目环境
- 问题记录
- 小结
Scala项目环境
Java8
scala-2.11.12
MacBook Apple m2芯片
问题记录
1、scala版本安装
我的本地环境:
➜ ~ java --version
openjdk 11.0.18 2023-01-17
OpenJDK Runtime Environment Homebrew (build 11.0.18+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.18+0, mixed mode)
下载:https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.tgz
安装之后发现不兼容jdk-11, 查了部分资料之后选用Java8
解决办法:
修改/bin/scala,/bin/scalac文件,在最上面加入Java8的环境变量,如下:
Tips:你可以在自己的本地环境中搞双环境,方便切换。
scala加入本地环境变量:
#scala
export SCALA_HOME="/Users/tzq/app/software/scala"
export PATH=$SCALA_HOME/bin:$PATH
做完以上事情之后就可以运行scala命令看看,没有问题,环境就是ok的。
2、项目编译报错
scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException
以上报错,其实是scala编译的栈溢出了,可以参照我如下的设置。
Tips: 这里要根据自己的情况设置,其中xss表示栈空间栈内存的大小,设置的栈的大小决定了函数调用的最大深度,默认的参数可能不够,需要加大点。至于heap堆大小,依据情况而定。
补充一下,也许不是这个问题,后来我在项目中发现了如下设置:
-
如果不加-nobootcp会报错:[ERROR] Caused by: java.lang.NoClassDefFoundError: javax/tools/ToolProvider
-
如果第二个不改变原始大小:-Xss2048k 就会一直报堆栈溢出,因此这里调整为2m既可,应付一般的递归深度应是足够了。
# 参数释义
-nobootcp or --no-boot-class-path
Do not use the boot classpath for the scala jars.
小结
以上问题不难,遇到问题层层递进去解决就好,在这里简要做个记录,后面如有再补充。