Java 9が広まってきて、しかし多少古いScalaやsbtのままやろうとしてハマっている人を見かけることが多くなってきたので、簡単にまとめておきます。 (追記) Java 9となっているところは、Java 10やJava11と置き換えても大体当てはまります。つまりJava8からJava9のclasspath関連の変更が一番重大で、逆にJava9で動けばJava10や11でも動く場合が多いので。 Java 9 で動くScala(のコンパイラやREPL) 2.9系以前は不可能 2.10系はScala 2.10.7以降なら可 2.11系はScala 2.11.12以降なら可 2.12系はScala 2.12.1以降なら可 *1 2.13系はマイルストーン含めて全部可 Java 9 で動くsbt sbt 0.12系以前は不可能(0.12系はScala 2.9系なため) sbt 0.13系はsbt