让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。
示例:
定义一个接口:
import java.rmi.Remote;import java.rmi.RemoteException;public interface RMIInterface extends Remote { public String test() throws RemoteException;
}定义一个实现类:
import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;public class RMIImpl extends UnicastRemoteObject implements RMIInterface { public RMIImpl() throws RemoteException {
} public String test() throws RemoteException { return "Test";
}
}服务端启动服务:
import java.rmi.Naming;import java.rmi.registry.LocateRegistry;public class RMIServer { public static void main(String args[]) throws Exception { try {
RMIInterface rml = new RMIImpl(); // 本地主机上的远程对象注册表Registry的实例,并指定端口为 9999
LocateRegistry.createRegistry(9999); //把远程对象注册到RMI注册服务器上,并命名为 rml
Naming.bind("rmi://localhost:9999/rml", rml);
} catch (Exception e) {
}
}
}客户端使用服务:
import java.rmi.Naming;public class RMIClient {
public static void main(String args[]) { try {
RMIInterface rmi = (RMIInterface) Naming.lookup("rmi://localhost:9999/rml");
System.out.println(rmi.test());
} catch (Exception e) {
}
}
}
作者:专职跑龙套
链接:https://www.jianshu.com/p/ba55143caf4f
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦