我没有使用 Scala 的经验,所以这个问题可能是初级的。我正在尝试在 Java 中使用 Scala 类,基于本教程中的“Person”示例:http: //www.codecommit.com/blog/java/interop-between-java-and-scala
我创建了两个源文件,一个 Scala 和一个 Java,如下所示。
Person.scala:
class Person {
def getName() = "Daniel Spiewak"
}
测试.java:
public class Test {
public static void main(String[] args) {
Person p = new Person();
p.getName();
}
}
我可以编译(带有我不理解的警告),但是当我尝试运行该程序时会收到 ClassNotFoundException。
$ scalac Person.scala $ javac 测试.java ./Person.class:警告:在“ScalaSignature”类型中找不到注释方法“bytes()”:找不到 scala.reflect.ScalaSignature 的类文件 1 个警告 $ java 测试 线程“主”java.lang.NoClassDefFoundError 中的异常:scala/ScalaObject 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:787) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:447) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:423) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在 Test.main(Test.java:3) 引起:java.lang.ClassNotFoundException:scala.ScalaObject 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:423) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 13 更多
知道我做错了什么吗?