Java scala/可序列化NoClassDefFoundError(RMI w/scala)
一直在关注RMI for Java,试图将其转换为Scala。我使用Java scala/可序列化NoClassDefFoundError(RMI w/scala),java,scala,rmi,noclassdeffounderror,serializable,Java,Scala,Rmi,Noclassdeffounderror,Serializable,一直在关注RMI for Java,试图将其转换为Scala。我使用trait,而不是interface,并对方法进行注释,以指示抛出RemoteException 实现了所有的功能,并且完全遵循它,除了使用scalac而不是javac之外 最后,在激动人心的时刻,运行它,我设置了安全策略,启动rmiregistry,转到启动我的服务器,并点击以下内容: java.rmi.ServerError: Error occurred in server thread; nested exception
trait
,而不是interface
,并对方法进行注释,以指示抛出RemoteException
实现了所有的功能,并且完全遵循它,除了使用scalac
而不是javac
之外
最后,在激动人心的时刻,运行它,我设置了安全策略,启动rmiregistry
,转到启动我的服务器,并点击以下内容:
java.rmi.ServerError: Error occurred in server thread; nested exception is:
java.lang.NoClassDefFoundError: scala/Serializable
这可能是什么原因造成的?我将他们的命令从java
更改为scala
,但其他一切都是一样的(对用户名和文件路径进行模块化)。。它怎么找不到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
更新:用
java.io.Serializable
替换了scala.Serializable
,一切正常。然而,这是一项围绕问题而开展的工作,与解决问题相反。根据Scala API,Scala.Serializable扩展了java.io.Serializable
,因此类路径出现了问题……Scala将代码编译成java类,但是当您以任何方式使用标准库时,您还需要在类路径中包含Scala运行时库
换句话说,在
java
调用的-cp
参数中需要/path/to/scala library.jar
我使用了scala
而不是java
来调用这个类,但是Josh Suereth告诉我做同样的事情,我运行了这个:java-cp”。/:~/public\u html/src/server/classes/compute.jar:/cs/mutant/adelbert\u chang/scala-2.9.2/lib/scala library.jar”-Djava.rmi.server.codebase=http://cs.ucsb.edu/~adelbert_chang/src/server/classes/compute.jar-Djava.rmi.server.hostname=blackbird.cs.ucsb.edu-Djava.security.policy=server.policy system.ComputerImpl
,但同样的问题。。。