从 Java 调用 Scala 的错误编译错误

Bad Compile Error Calling Scala from Java

当我 运行 一个工作的 Java class 和一个不完整的、不工作的 Scala class 时,编译器没有说错误与 Scala 文件有关.

编译器应该说错误在 Scala class 中并指向行号,因为程序在 Scala class 处失败,而且错误在 Scala 文件中。

正如我在 Java 中描述的那样,仅在程序中有效,但在 Scala 程序中 Java 无效。

为什么它没有按预期工作,我该如何解决?

编辑

进一步查看后,我在消息 window 中找到了错误位置,但这不是 运行 输出。很多时候,在一个大型项目中,有许多正在处理的文件,其中的错误使消息混乱 window。我需要它来在 运行 输出中打印错误信息。 Java 可以,为什么 Scala 不能?

错误:

Exception in thread "main" java.lang.ClassNotFoundException: compile_error_test.JavaClass
    at java.net.URLClassLoader.run(URLClassLoader.java:359)
    at java.net.URLClassLoader.run(URLClassLoader.java:348)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:182)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:116)

您可以看到,对于足够复杂的程序,这会导致浪费时间来查找有错误的文件。

JavaClass.java

public class JavaClass {

    public void callScalaClass() {

        ScalaClass scalaClass = new ScalaClass();

        scalaClass.scalaTestMethod();

    }

    public static void main(String[] args) {
        new JavaClass().callScalaClass();
    }

}

ScalaClass.scala

class ScalaClass {

  def scalaTestMethod(): Unit = {

    // Purposefully Undefined
    var nonDefinedVar =

  }

}

发生此错误是因为文件正在编译但未写入 out 目录或与此相关的任何目录。