Ubuntu系统Scala REPL输入无法显示问题求助
解决Ubuntu 18.04下Scala解释器输入无回显、光标不动的问题
我之前也碰到过一模一样的情况——升级Ubuntu 18.04并切换到JDK 8后,Scala REPL突然就抽风了:输入的时候光标一动不动,敲的字符也完全看不到,但按下回车后代码居然能正常执行,只显示结果。折腾了好一阵,整理出几个可行的解决办法,你可以挨个试试:
1. 强制指定JLine终端类型
Scala REPL靠JLine处理终端交互,大概率是JLine和Ubuntu 18.04的终端环境不兼容。你可以先临时指定终端类型测试:
- 启动Scala时加参数:
scala -J-Djline.terminal=jline.UnsupportedTerminal - 如果这个方法管用,直接把参数加到Scala启动脚本里一劳永逸:
- 找到Scala的启动脚本,一般在
/usr/bin/scala,如果用sdkman管理就是~/.sdkman/candidates/scala/current/bin/scala - 打开脚本找到
exec "$JAVA" $JAVA_OPTS ...那一行,在$JAVA_OPTS后面追加-Djline.terminal=jline.UnsupportedTerminal
- 找到Scala的启动脚本,一般在
2. 切换终端环境
Ubuntu 18.04默认的GNOME终端可能和Scala REPL有冲突,试试换个终端或者修改终端类型:
- 安装并使用
xterm:先执行sudo apt install xterm,打开xterm后再启动Scala,看是否恢复正常 - 临时修改当前终端的TERM变量:执行
export TERM=xterm,然后再启动Scala测试
3. 调整Scala版本
部分Scala版本和JDK 8、Ubuntu 18.04的组合存在兼容性问题,试试降级或升级Scala:
- 如果用sdkman管理Scala,执行
sdk install scala 2.12.15切换到这个稳定版本(亲测这个版本在Ubuntu 18.04+JDK8下表现正常) - 也可以尝试最新的兼容JDK8的Scala版本,比如2.13.x系列的低版本
4. 检查JDK 8的配置是否正确
确保你的JDK 8安装和配置没有问题:
- 执行
java -version和javac -version确认输出是1.8.x的版本 - 检查
JAVA_HOME环境变量:执行echo $JAVA_HOME,应该指向JDK 8的安装目录,比如/usr/lib/jvm/java-8-openjdk-amd64 - 如果
JAVA_HOME没设置,在~/.bashrc或~/.profile里添加:
然后执行export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATHsource ~/.bashrc让配置生效
内容的提问来源于stack exchange,提问作者Bruno Fischetti
相关产品推荐
相关产品推荐

