关于scala:无法初始化编译器:找不到编译器镜像中的对象java.lang.Object

Failed to initialize compiler: object java.lang.Object in compiler mirror not found

在Ubuntu 16.04上,我安装了scala

1
2
3
4
5
6
$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失败:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$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为我解决了这个问题。

1
2
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

您需要将jdk1.8.0_161.jdk替换为您拥有的JDK版本。

您可以找到以下版本:

ls /Library/Java/JavaVirtualMachines/

设置该环境变量后,可以打开一个新终端并运行java -version以查看版本是否设置正确。

编辑:

可能值得注意的是,即使这是一个Linux问题,我也有Mac。


安装java版"1.8.0_144"为我解决了这个问题。我以前安装过jdk 1.9。


安装Java 8解决了这个问题。

我下载了java 8并将其解压缩到以下位置:/usr/lib/jvm/jdk1.8.0_172

执行此操作后,将JAVA_HOME路径更新为:/usr/lib/jvm/jdk1.8.0_172

这将解决问题。


我在同一个地方有一个我的jdk拉链。拆卸拉链对我来说很有用。


我遇到了同样的问题。卸载Java 9

1
2
3
sudo rm -fr /Library/Java/JavaVirtualMachines/jdk-9.jdk/
sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane

参考:https://gist.github.com/schnell18/bcb9833f725be22f6acd01f94b486392

安装Java 8。

现在一切似乎都很好。

顺便说一句:这是为mac。可能对你有用。


使用这个java版本"1.8.0_144"

卸载java和apache-spark

安装java,安装apache-spark


如果您遇到此问题的Java 9,请将其卸载并安装Java 8。