6

一直在关注关于 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

这可能是什么原因造成的?我将他们的命令从更改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

更新:替换scala.Serializablejava.io.Serializable一切正常。但是,这是一种解决问题的方法,而不是解决问题。根据 Scala API,scala.Serializable extends java.io.Serializable所以类路径有些问题......

4

1 回答 1

2

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

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

于 2012-10-03T10:05:28.730 回答