更改默认RMI端口(Java)

更改默认RMI端口(Java),java,rmi,Java,Rmi,如何更改默认的RMI端口(1099)。它可以作为JVM参数,也可以通过编码,这并不重要。谢谢。您可以在命令行中指定它。从: 默认情况下,注册表在端口1099上运行。要在其他端口上启动注册表,请在命令行上指定端口号。不要忘记取消设置CLASSPATH环境变量 在代码中,您可以使用覆盖按主机名和端口定位注册表,如本教程部分所述。(这同样适用于实现服务器。)您可以在导出远程对象时指定自己的端口,通过超级(端口…)或导出对象(远程,端口…),具体取决于是否扩展UnicastRemoteObject。如果

如何更改默认的RMI端口(1099)。它可以作为JVM参数,也可以通过编码,这并不重要。谢谢。

您可以在命令行中指定它。从:

默认情况下,注册表在端口1099上运行。要在其他端口上启动注册表,请在命令行上指定端口号。不要忘记取消设置CLASSPATH环境变量


在代码中,您可以使用覆盖按主机名和端口定位注册表,如本教程部分所述。(这同样适用于实现服务器。)

您可以在导出远程对象时指定自己的端口,通过超级(端口…)或导出对象(远程,端口…),具体取决于是否扩展UnicastRemoteObject。如果扩展Activatable,则会有类似的带有端口号的super()重载。如果使用该命令行,您可以在命令行上指定注册表的端口,如果使用该命令行,则可以通过LocateRegistry.createRegistry()指定。

Ok,那么您的意思是没有办法更改rmiRegistry端口,但您可以使用-D属性arg将rmiServer端口从1098更改为JVM的任何端口?@djangofan:不完全正确。您可以在命令行上更改rmiregistry端口(如上所示)。@djangofan他说的恰恰相反。好的,换句话说,除了在启动JVM之前从命令行启动“rmiregistry.exe”的方法外,没有其他方法可以更改rmiregistry端口?@djangofan您阅读得不够仔细。他也没有这样说,还有一点:您可以通过Locatearegistry.createaRgistry()在JVM中的任意端口上启动它。是一种通过编码的解决方案。看起来您必须在所选端口上创建自定义注册表。编辑-只需重新阅读您的问题:这不会更改默认端口,但会在现有端口上添加一个新的注册表,端口10991099是RMI注册表服务器端口,而不是RMI服务器端口。@VincentRobert两者都可以。
Microsoft Windows:

start rmiregistry 2001

Solaris OS or Linux:

rmiregistry 2001 &