Scala/Serializable NoClassDefFoundError (RMI w/Scala)

ade*_*rtc 6 java scala rmi noclassdeffounderror serializable

一直在关注这个关于 RMI for Java 的教程,试图将它翻译成 Scala。而不是interface我使用trait, 并且我注释方法来指示RemoteException.

实现了所有内容,并进入编译步骤并完全遵循它,除了javac我使用scalac.

最后在激动人心的最后一步,运行它,我设置安全策略,启动rmiregistry,去启动我的服务器并得到这个:

java.rmi.ServerError: Error occurred in server thread; nested exception is: 
    java.lang.NoClassDefFoundError: scala/Serializable
Run Code Online (Sandbox Code Playgroud)

什么可能导致这种情况?我将他们的命令从 更改javascala,但其他所有内容都相同(以用户名和文件路径为模)。怎么找不到scala/Serializable

可能相关:

$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (rhel-1.49.1.11.4.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

$ scala -version
Scala code runner version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL
Run Code Online (Sandbox Code Playgroud)

更新:替换scala.Serializablejava.io.Serializable,一切正常。但是,这是解决问题的工作,而不是解决问题。根据 Scala API,scala.Serializable extends java.io.Serializable因此类路径有些不稳定......

the*_*mel 3

Scala 将代码编译为 Java 类,但是当您以任何方式使用标准库时,您还需要在类路径中包含 Scala 运行时库。

换句话说,您需要/path/to/scala-library.jar在调用-cp的参数中使用java