让在某个 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 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦