Exception in thread “main“ java.lang.NoClassDefFoundError: javax/script/Compilable

scala的交互模式启动时出现这个问题:

完整报错如下:

$scala
Shell 传递参数实例!
执行的文件名:/home/appleyuchi/scripts/scala/scala.sh
Exception in thread "main" java.lang.NoClassDefFoundError: javax/script/Compilable
	at scala.tools.nsc.interpreter.ILoop.createInterpreter(ILoop.scala:118)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:911)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909)
	at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:909)
	at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:74)
	at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87)
	at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98)
	at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

解决方案:

/home/appleyuchi/bigdata/scala-2.11.8/bin/scala

/home/appleyuchi/bigdata/scala-2.11.8/bin/scalac

各自在文件中加入一句:

export JAVA_HOME=~/Java/jdk1.8.0_131

这个解决方案的原理是用局部JAVA_HOME变量覆盖~/.bashrc中的JAVA_HOME变量。

原因:

与JDK9不兼容,使用JDK8即可.

猜你喜欢

转载自blog.csdn.net/appleyuchi/article/details/107723178