Выполнение scala интерактивной оболочки из командной строки

Я просто установил scala на Ubuntu

scala -version
Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL

но когда я пытаюсь выполнить команду scala для интерактивной сессии оболочки, у меня есть следующая ошибка:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/script/Compilable
    at scala.tools.nsc.interpreter.ILoop.createInterpreter(ILoop.scala:126)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:908)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:906)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:906)
    at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)
    at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:906)
    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)
0
задан 17 February 2018 в 08:28

1 ответ

Версия Scala, которого Вы установили, не работает с версией Java, который Вы установили.

Scala работает хорошо с Java 8. Вы, вероятно, установили Java 9. Решение состоит в том, чтобы удалить Java 8 установки и Java.

Существует больше проблем с попыткой использовать Java 9 или более новый с Scala. Oracle начала изменять упаковку и лицензирование для Java, что означает, что некоторые классы (импорт), которого требует Scala, не существуют в Java SE 9 +. Некоторые были перемещены в Java EE, и некоторые удерживаются от использования. Останьтесь с Java 8 с Scala.

1
ответ дан 31 October 2019 в 00:09

Другие вопросы по тегам:

Похожие вопросы: