我正在查看RMI文档,并想知道是否可以自动化RMI? 例如,我有4个班级 1个接口,1个实现类,1个服务器类和1个客户端类。 现在,为了远程访问对象,必须
编译所有类
javac class.java
运行客户端
java client
将显示输出。但是,当创建其类对象时,我可以创建,导出服务器对象并将其自动绑定到rmi注册表吗?只要对象处于活动状态并且客户端可以开始访问方法,服务器就准备好了吗?
我只有一个类是服务器,除了客户端之外,任何其他类都不能访问它,所以也没有安全问题。
我的主要动机是在代码本身执行上面列出的所有4个步骤,并使服务器类方法可以访问客户端。不能手动执行javac
,启动rmiregistry
,启动服务器和java客户端。
如果服务器使用LocateRegistry.getRegistry()而不是LocateRegisgtry.creareRegistry,客户端也可以在没有任何命令(如start rmiregistry
和start server
从服务器端运行的情况下访问服务器) 1099)??
答案 0 :(得分:2)
如果您满足于使注册表的生命周期与服务器进程的生命周期相同,则LocateRegistry
类具有createRegistry(...)
方法,这些方法允许您构建进程内注册表容易。所有rmiregistry
程序都会在LocateRegistry.createRegistry(1099);
的调用周围添加一个小小的包装。