55

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?

5
  • 1
    What is the value of JAVA_HOME in your machine? Commented Jul 27, 2016 at 2:58
  • 2
    It's not set. But, I fixed it by sudo update-alternatives --config javac to use openjdk-8 rather than /usr/lib/jvm/java-9-openjdk-amd64/bin/java. Commented Jul 27, 2016 at 3:02
  • Did setting the JAVA_HOME erase the error? Commented Jul 27, 2016 at 3:03
  • On my machine setting the JAVA_HOME erased the error Commented Sep 11, 2016 at 23:17
  • I had the same problem, and changing the java version to 8 made the trick. Commented Jan 5, 2017 at 20:41

9 Answers 9

41

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

sudo update-alternatives --config java
sudo update-alternatives --config javac
Sign up to request clarification or add additional context in comments.

6 Comments

installing specific java version on osx with brew: lonecpluspluscoder.com/2017/10/08/…
Very Helpful answer!
This is a linux question, but if you are having this issue on a Mac, follow these instructions to install Java8 in your system (stackoverflow.com/questions/24342886/…), and set your new JAVA_HOME accordingly (see @Dbz answer below).
I was using Java 10, and downgrading to version 8 of OpenJDK indeed worked! However, I also had to update the JAVA_HOME environment variable to the proper folder for it to work, in case anyone needs to do this as well.
As mentioned, downgrade to legacy software is an bad option. This is not an correct answer. Only option is to update scala and sbt
|
17

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.

1 Comment

The only correct answer out of 8 others, and zero upvotes!
11

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.

Comments

7

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

Comments

6

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

Comments

2

Worked with this java version "1.8.0_144"

Uninstall java and apache-spark

install java, install apache-spark

Comments

2

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.

Comments

-1

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.

Comments

-2

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.