2016-07-27 91 views
15

在Ubuntu 16.04,我装scala无法初始化编译器:在编译器镜对象java.lang.Object中未找到

$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 

在安装openjdk8scala打开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

JAVA_HOME在您的机器中的价值是什么? –

+2

没有设置。但是,我使用'sudo update-alternatives --config javac'来修复它,以使用openjdk-8而不是'/ usr/lib/jvm/java-9-openjdk-amd64/bin/java'。 –

+0

设置JAVA_HOME是否擦除错误? –

回答

8

使用Java 8版本的OpenJDK为我解决了这个问题。

sudo update-alternatives --config java 
sudo update-alternatives --config javac 
+0

使用brew在osx上安装特定的java版本:https://www.lonecpluspluscoder.com/2017/10/08/installing-other-versions-of-the-java-jdk-via-homebrew/ – polo

+0

非常有帮助的回答! –

+0

这是一个linux问题,但如果您在Mac上遇到此问题,请按照以下说明在您的系统中安装Java8(https://stackoverflow.com/questions/24342886/how-to-install-java-8- on-mac),并相应地设置新的JAVA_HOME(请参阅下面的@Dbz答案)。 – Rick

3

安装Java版本“1.8.0_144”为我解决了这个问题。我以前安装过jdk 1.9。

1

曾与该Java版本 “1.8.0_144”

卸载Java和Apache的火花

安装java,安装apache火花

0

如果你有Java的9这个问题,将其卸载然后安装Java 8。

0

这个问题似乎是与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

你需要与你的JDK版本为准更换jdk1.8.0_161.jdk

,可以看到版本:

ls /Library/Java/JavaVirtualMachines/

一旦你设置环境变量,你可以打开一个新的终端,运行java -version,看看版本设置正确。

编辑:

这可能是值得指出的是,我有一个苹果,即使这是一个Linux的问题。

相关问题