我正在写一个rmi应用程序。当我把所有类放在一个目录中时,一切都很好。但是,当我尝试拆分服务器部分和客户端部分时,它会引发java.lang.ClassNotFoundException.myclasses 似乎是Registry无法在其CLASSPATH上找到该类。我想知道如何解决这个问题?
答案 0 :(得分:0)
您是否在客户端和服务器的参数中指定了类路径目录?
来自教程:
服务器
在Solaris操作系统上:
java -classpath classDir -Djava.rmi.server.codebase = file:classDir / example.hello.Server&
在Windows平台上:
启动java -classpath classDir -Djava.rmi.server.codebase = file:classDir / example.hello.Server
服务器准备就绪后,客户端可以按如下方式运行:
java -classpath classDir example.hello.Client 其中classDir是类文件树的根目录
http://java.sun.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html#5
答案 1 :(得分:-1)
注册表用于将客户端接口与其服务器实现类链接起来。在客户端上,您需要在类路径上具有接口类定义。
此外,客户端根本不应该引用实现类 - 所有内容都应该在接口/存根类中。
如果这不能解答您的问题,您需要更具体,并提供至少一些代码。