Java 在Windows7上使用RMI
我是在Windows7上使用RMI的新手,我想用RMI运行我的项目以显示“HelloWorld”,但我无法运行它,因为我遇到了以下错误。任何人都可以帮我。 我还使用了JDK1.6 我的错误是: java.rmi.UnmarshalException:错误解组参数;嵌套异常是:Java 在Windows7上使用RMI,java,Java,我是在Windows7上使用RMI的新手,我想用RMI运行我的项目以显示“HelloWorld”,但我无法运行它,因为我遇到了以下错误。任何人都可以帮我。 我还使用了JDK1.6 我的错误是: java.rmi.UnmarshalException:错误解组参数;嵌套异常是: java.lang.ClassNotFoundException: Hello_Stub 我想您必须使用生成远程类存根。这些不是由Java编译器(javac.exe)自动生成的 您可以定义一个(称为rmic)来简
java.lang.ClassNotFoundException: Hello_Stub
我想您必须使用生成远程类存根。这些不是由Java编译器(javac.exe)自动生成的 您可以定义一个(称为rmic)来简化您的生活,并确保自动生成存根
如果您使用的是Eclipse,您甚至可以将此任务作为构建过程的一部分,这样您就可以确保每次编译代码时都会生成这些任务。很可能其他IDE也提供了类似的功能。听起来您可能在遵循本教程的过时版本:。如果不是这样,请在命令行上检查Java版本(
Java-version
)。有三种方法可以获得此异常:
UnicastRemoteObject,
或UnicastRemoteObject.exportObject()
,则表示您没有向super(int port…
提供端口号参数,否则,和您没有通过rmic
生成存根。请注意,如果提供端口号参数,即使是零,也不需要运行rmic
LocateRegistry.createRegistry()
在同一JVM中运行注册表。请注意,此方法的返回值需要存储在不会被垃圾收集的位置,例如静态变量中rmic.exe
自Java 1.5/5.0以来就不需要了。我已经完成了,但在运行服务器文件后,我得到了它。。我不知道我的问题是什么..我已经做了,但在运行服务器文件后,我得到了。。我不知道我的问题是什么。@ChrisDennett如果在构造(超级(端口))或导出时不提供端口号参数,则仍然需要它。有关原因,请参阅UnicastRemoteObject的前言。端口与是否需要rmic无关。确实不需要。不需要rmic,它在旧版本的Java中被弃用。它不再使用了。这是在现在的动态编程工具出现之前。还要确保您使用的是1.6。在命令行上键入java-version
以确认。