问题描述
在Ubuntu 16.04上,我安装了scala
:
$ls ~/Binary/scala-2.11.8
bin doc lib man
$grep -A 2 SCALA ~/.bashrc
SCALA=~/Binary/scala-2.11.8
SBT=~/Binary/sbt
export PATH=$PATH:$SCALA/bin:$SBT/bin
装有openjdk8
的情况下,打开REPL时scala
失败:
$javac -version
javac 1.8.0_91
$
$scala
Welcome to Scala 2.11.8 (OpenJDK 64-Bit Server VM, Java 9-internal).
Type in expressions for evaluation. Or try :help.
scala>
Failed to initialize compiler: object java.lang.Object in compiler mirror not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programmatically, settings.usejavacp.value = true.
Failed to initialize compiler: object java.lang.Object in compiler mirror not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programmatically, settings.usejavacp.value = true.
我该如何解决?
最佳回答
使用Java 8版本的OpenJDK为我解决了此问题。
sudo update-alternatives --config java
sudo update-alternatives --config javac
次佳回答
这个问题似乎与Java 9有关,而Java 8已解决。
如果您具有Java 8和Java 9,并且希望保留两者,则可以将环境变量JAVA_HOME
设置为Java 8路径。
例如:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
您将需要用您拥有的JDK的任何版本替换jdk1.8.0_161.jdk
。
您可以通过以下方式找到该版本:
ls /Library/Java/JavaVirtualMachines/
设置该环境变量后,您可以打开一个新终端并运行java -version
以查看版本是否正确设置。
编辑:
可能值得注意的是,即使这是Linux问题,我也有Mac。
第三种回答
安装Java版本”1.8.0_144″为我解决了此问题。我以前安装了jdk 1.9。