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

时间:2015-01-14 04:20:03

标签: java scala

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

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

这就像我在仅Java程序中描述的那样,但不是用Scala程序编写的Java。

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

修改

进一步检查时,我在消息窗口中找到了错误位置,但这不是Run输出。很多时候,在一个大项目中,有许多文件正在进行中,错误会使消息窗口变得混乱。我需要这个在Run输出中打印错误信息。 Java这样做,为什么不能Scala?

错误:

Exception in thread "main" java.lang.ClassNotFoundException: compile_error_test.JavaClass
    at java.net.URLClassLoader$1.run(URLClassLoader.java:359)
    at java.net.URLClassLoader$1.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 =

  }

}

1 个答案:

答案 0 :(得分:0)

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