Не удалось инициализировать компилятор: объект java.lang.Object в зеркале компилятора не найден

На 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, scala не работает при открытии REPL:

$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.

Как я могу его решить?

Ответ 1

Использование версии OpenJDK на Java 8 разрешило эту проблему для меня.

sudo update-alternatives --config java
sudo update-alternatives --config javac

Ответ 2

Эта проблема, по-видимому, связана с 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, чтобы увидеть, была ли установлена правильная версия.

ОБНОВЛЕНИЕ:

Возможно, стоит отметить, что у меня Mac, хотя это вопрос Linux.

Ответ 3

Установка java-версии "1.8.0_144" разрешила проблему для меня. Ранее я установил jdk 1.9.

Ответ 4

Установка Java 8 решила эту проблему.

Я скачал Java 8 и извлек это в следующую папку: /usr/lib/jvm/jdk1.8.0_172

После этого обновите путь JAVA_HOME к тому же: /usr/lib/jvm/jdk1.8.0_172

Это решит проблему.

Ответ 5

Я столкнулся с той же проблемой. Удалить Java 9

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. Может быть полезно для вас.

Ответ 6

Работала с этой версией java "1.8.0_144"

Удалить java и apache-spark

установить java, установить apache-spark

Ответ 7

У меня был почтовый индекс моего JDK в том же месте. Удаление почтового индекса сделало трюк для меня.

Ответ 8

Если у вас есть Java 9 с этой проблемой, удалите его и установите вместо него Java 8.