scala-cli
scala-cli copied to clipboard
Missing a meaningful error message when trying to pass non-Scala inputs with `--server=false`
Version(s) 1.9.1
Describe the bug
Scala CLI doesn't support running non-Scala inputs without Bloop (with --server=false), but it doesn't raise a meaningful error, and rather lets the compiler fail.
To Reproduce
//Side.java
public class Side {
public static String message = "Hello";
}
//Smth.scala
@main def main() = println(Side.message)
scala-cli .
# Compiling project (Scala 3.7.3, JVM (23))
# Compiled project (Scala 3.7.3, JVM (23))
# Hello
scala-cli . --server=false
# Exception in thread "main" java.lang.NoClassDefFoundError: Side
# at Smth$.<clinit>(Main.scala:2)
# at Smth.main(Main.scala)
# Caused by: java.lang.ClassNotFoundException: Side
# at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
# at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
# at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:528)
# ... 2 more
Expected behaviour
scala-cli .
# Compiling project (Scala 3.7.3, JVM (23))
# Compiled project (Scala 3.7.3, JVM (23))
# Hello
scala-cli . --server=false
# Error: Scala CLI does not support .java inputs with --server=false
Note: actually, pure Java projects are handled correctly (when only .java files are present with --server=false).
Things stop being supported for mixed Scala/Java compilation with --server=false.