2016-07-27 10 views
15

Na Ubuntu 16.04, zainstalowałem scala:Nie można zainicjować kompilatora: obiekt java.lang.Object w lustrze kompilator nie znaleziono

$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 

Z openjdk8 zainstalowanego scala zawiedzie podczas otwierania 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. 

Jak mogę to rozwiązać?

+1

Jaka jest wartość JAVA_HOME w twoim komputerze? –

+2

To nie jest ustawione. Ale naprawiłem to za pomocą 'sudo update-alternatives --config javac', aby używać openjdk-8 zamiast'/usr/lib/jvm/java-9-openjdk-amd64/bin/java'. –

+0

Czy ustawienie JAVA_HOME usunęło błąd? –

Odpowiedz

8

Korzystanie z wersji OpenJDK w języku Java 8 rozwiązało ten problem.

+0

instalowanie konkretnej wersji java na osxie z naparami: https://www.lonecpluspluscoder.com/2017/10/08/installing-other-versions-of-the-java-jdk-via-homebrew/ – polo

+0

Bardzo pomocna odpowiedź! –

+0

To jest pytanie linuksowe, ale jeśli masz ten problem na Macu, postępuj zgodnie z tymi instrukcjami, aby zainstalować Java 8 w swoim systemie (https://stackoverflow.com/questions/24342886/how-to-install-java-8- on-mac) i ustaw odpowiednio nowy JAVA_HOME (patrz odpowiedź @Dbz poniżej). – Rick

3

Zainstalowanie wersji java "1.8.0_144" rozwiązało problem. Wcześniej zainstalowałem jdk 1.9.

1

Pracował w tej wersji java "1.8.0_144"

Odinstaluj Java i apache-iskra

zainstalować java, zainstalować Apache iskrę

0

Jeśli masz Java 9 z tym problem, odinstaluj go i zainstaluj Java 8.

0

Ten problem wydaje się być z Java 9 i zostanie rozwiązany z Java 8.

Jeśli masz Java 8 i 9 Java i chciałbyś zachować oba, można ustawić zmienną środowiskową JAVA_HOME w Javie 8 ścieżka.

Na przykład:

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

Trzeba będzie wymienić jdk1.8.0_161.jdk z Niezależnie od wersji JDK, że masz.

może się okazać, że wersja z:

ls /Library/Java/JavaVirtualMachines/

Po ustawieniu tej zmiennej środowiskowej, można otworzyć nowy terminal i uruchomić java -version aby sprawdzić, czy wersja została poprawnie ustawione.

EDIT:

Warto może dodać, że mam Mac, chociaż jest to kwestia linux.

Powiązane problemy