Kevin Meredith
Kevin Meredith

Reputation: 41939

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

On Ubuntu 16.04, I installed 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

With openjdk8 installed, scala fails when opening the 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.

How can I resolve it?

Upvotes: 55

Views: 54993

Answers (9)

cstroe
cstroe

Reputation: 4246

If you're using an older version of Scala that is not compatible with JDK greater than 8, update to a newer version that's compatible with JDK 11. JDK 11 is current the LTS.

Versions by minor version:

  • For 2.11.x this means 2.11.12 or later
  • For 2.12.x this means 2.12.10 or later
  • For 2.13.x this means 2.13.1 or later

As other answers mentioned, make sure you're also using a build tool that's compatible with JDK >8 (e.g. sbt greater than 0.13.17).

Upvotes: 6

silverberry
silverberry

Reputation: 842

Java 8 is deprecated, so downgrading to is must NOT be an acceptable solution.

The correct solution is to upgrade your SBT to 0.13.17 or higher.

Upvotes: 17

user7392763
user7392763

Reputation: 1

i had a zip of my jdk at the same location. Removing the zip did the trick for me.

Upvotes: -2

Murali Bala
Murali Bala

Reputation: 1143

I ran into the same issue. Uninstall 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

Ref: https://gist.github.com/schnell18/bcb9833f725be22f6acd01f94b486392

Install Java 8.

Everything seems to good now.

Btw: this was for mac. Might be useful for you.

Upvotes: -1

Styne J
Styne J

Reputation: 195

Installing Java 8 resolved this issue.

I downloaded java 8 and i extracted that to the following location : /usr/lib/jvm/jdk1.8.0_172

After doing this update the JAVA_HOME path to the same : /usr/lib/jvm/jdk1.8.0_172

This will resolve the issue.

Upvotes: 2

Dbz
Dbz

Reputation: 2761

This issue appears to be with Java 9 and gets solved with Java 8.

If you have Java 8 and Java 9, and you would like to keep both, you can set your environment variable JAVA_HOME to the Java 8 path.

For example:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home

You will need to replace jdk1.8.0_161.jdk with whichever version of the JDK that you have.

You can find that version with:

ls /Library/Java/JavaVirtualMachines/

Once you set that environment variable, you can open a new terminal and run java -version to see if the version was set correctly.

EDIT:

It may be worth noting that I have a Mac even though this is a linux question.

Upvotes: 11

Anthony Awuley
Anthony Awuley

Reputation: 3953

Worked with this java version "1.8.0_144"

Uninstall java and apache-spark

install java, install apache-spark

Upvotes: 2

Yash P Shah
Yash P Shah

Reputation: 809

Installing java version "1.8.0_144" resolved the issue for me. I had installed jdk 1.9 previously.

Upvotes: 7

WOPR
WOPR

Reputation: 5393

Using the Java 8 version of OpenJDK resolved this issue for me.

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

Upvotes: 41

Related Questions