我该如何更改默认的RMI端口(1099)。可以通过JVM参数或编码方式进行更改,都可以。谢谢。
你可以在命令行中指定它。根据RMI教程:
默认情况下,注册表运行在端口1099上。要在不同的端口上启动注册表,请在命令行上指定端口号。不要忘记取消设置CLASSPATH环境变量。
Microsoft Windows:
start rmiregistry 2001
Solaris OS or Linux:
rmiregistry 2001 &
您的代码中使用了LocateRegistry.getRegistry(String host, int port) 方法来通过主机名和端口定位注册表,正如教程中的创建客户端程序一节所解释的那样。(实现服务器时同样适用。)
当导出远程对象时,您可以通过super(port, ...)或exportObject(remote, port, ...)指定自己的端口,具体取决于您是否扩展了UnicastRemoteObject。如果您扩展了Activatable,则有类似的带有端口号的super()重载。如果您使用Registry,可以在命令行上指定Registry的端口,否则可以通过LocateRegistry.createRegistry()指定。