日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java rmi 入门实例

發布時間:2023/12/18 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java rmi 入门实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java?rmi?入門實例

?(2009-06-16 16:07:55) 轉載▼
標簽:?

java

?

rmi

?

雜談

分類:?java-基礎
?java rmi即java遠程接口調用,實現了2臺虛擬機之間的程序調用,這樣,網絡上的任何兩臺計算機就可以相互調用對方的程序(如果允許)。 ??好了,下面就以經典的 Hello world作為例子講解。開發rmi的步驟如下。 1、編寫遠程接口,遠程接口實現類 2、編譯 3、生成接口實現類存根 4、在服務器端啟動rmiregistry命令 5、在服務端注冊發布遠程對象 6、在客戶端獲取遠程對象 實例: 以下遠程接口類為HelloRemote,實現類為HelloImpl,服務器端的發布類為RMIServer,客戶端的調用類為RMIClient,為簡單考慮,服務器和客戶端均在同一臺機器(所謂服務器和客戶機,是兩者運行在2個虛擬機進程下)。 一、編寫類 1、遠程接口類,需基礎java.rmi.Remote接口,且方法拋出RMIException public interface HelloRemote extends Remote{ public void sayHello() throws RemoteException; ?? } 2、遠程接口實現類,需繼承UnicastRemoteObject public class HelloImpl extends UnicastRemoteObject ?implements HelloRemote{ public HelloImpl() throws RemoteException { super(); } public void sayHello() throws RemoteException { System.out.println("Hello World!"); } } 3、服務端類 服務端類用于發布遠程對象 public class RMIServer { public static void main(String[] args) throws RemoteException, MalformedURLException { HelloRemote hello=new HelloImpl(); Naming.rebind("hello", hello); } } 4、客戶端類 public class RMIClient { public static void main(String args[]) throws MalformedURLException, RemoteException, NotBoundException{ ???????????????????????????System.setSecurityManager(new ??RMISecurityManager());//如果服務器和客戶端不再同一臺機器要加這行 HelloRemote hello=(HelloRemote) Naming.lookup("hello"); ??hello.sayHello(); } } 遠程接口類需同時在服務端和客戶端存在 二、編譯(注意以上類都沒有包,這里主要是簡化操作考慮) 客戶端文件夾在 E:/client(簡稱client),服務端在E:/server(簡稱server) 分別編譯以上4個文件。然后將Hello.class分別放到client和server下,將Client.class放到client下,Server.class放到server下,HelloImpl.class文件放到server文件夾下 三、生成存根和骨架 進入server文件夾在命令行下輸入命令 rmic HelloImpl,將生成一個HelloImpl_Stub.class文件 將此文件復制到client目錄下(server與client均該文件) 四、運行注冊程序 在命令行中進入server文件夾 輸入命令 rmiregistry,用于啟動注冊,在此前需設置classpath為E:/server,輸入rmiregistry命令后將在server文件夾下生成一個 五、運行服務類 java Server 六、運行客戶類 java Client 你將看到執行成功。 當你執行不順利時,請看看下面: 1、最終執行時要3個命令行窗口,一個運行rmiregistry,一個運行Server,一個運行Clinet,先執行rmiregistry命令,接著執行java Server,最后執行java Client 2、客戶端和服務端均要有存根(HelloImpl_Stub.class)和遠程接口的定義,且包名要一致。 3、當運行服務器時,提示找不到HelloImpl_Stub,那是你沒指定類路徑,那請你在執行rmiregistry前設置classpath 4、出現AscessableException訪問非法時,需要修改此略文件,在jre/security目錄下的java.policy文件中(如果你有多個jre,你無法確定是哪個。那就全部修改吧),在該文件中添加如下內容 grant { ?????????permission java.net.SocketPermission "*:1024-65535", ??????????????"connect,accept"; ?????????permission java.net.SocketPermission "*:80","connect"; ??????}; 5、指定端口,默認是1099,可以在運行rmiregistry時指定 如 rmiregistry 1098,也可以在Server.java中指定,如Registry.createRegistry(1088). ? 6、綁定地址的設置 簡單形式Naming.bind("hello"),本機地址時才可以 完全形式Naming.bind("rmi://117.45.220.11:1099/RMI_Hello")

轉載于:https://www.cnblogs.com/wshsdlau/p/3532071.html

總結

以上是生活随笔為你收集整理的java rmi 入门实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。