我对 Scala 和JVM编程完全陌生。我最近加入的团队使用scala来构建要在Spark上运行的程序。工作中的堆栈稳定且功能正常,但其复杂性与我在家中的需求不符:仅仅是拥有功能性scala shell 的人在添加任何“ 环境复杂性”
之前,请尝试使用该语言并尝试正确使用语法[注意]我只是想要一些与this documentation相同的东西(所以,请不要根据编译器,sbt,IDE等来回答)
david@ripper$ java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
david@ripper$ scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
这是我吃贝壳时得到的东西
david@ripper$ scala
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)
这似乎是一个经典问题,尽管我首先与系统上安装了 Oracle Java 11 有关。但是,我认为我使用以下命令将openjdk8设置为默认的,系统范围的JRE:
update-alternatives --config java
Il existe 2 choix pour l'alternative java (qui fournit /usr/bin/java).
Sélection Chemin Priorité État
------------------------------------------------------------
0 /usr/lib/jvm/java-11-oracle/bin/java 1091 mode automatique
1 /usr/lib/jvm/java-11-oracle/bin/java 1091 mode manuel
* 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 mode manuel
我想念的是什么。不是使用/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
进行Scala操作。我正在使用 Debian 9
答案 0 :(得分:0)
结果是,update-alternatives --config java
并没有更改用户PATH的JAVA_HOME
(仍然指向java11)。似乎scala-shell没有使用系统的默认JRE,而是使用一个.bashrc(在我的情况下为.zshrc)指向。