先熟悉RMI的步驟
服務器端:
(1)定義遠程端口
(2)編寫實現遠程接口的類
(3)使用rmic工具(該工具在jdk里,在dos窗口操作),將上述服務器類生成存根和主干。
(4)編寫一個主類,實例化服務器類,生成遠程對象,并且向注冊庫注冊該對象引用。
(5)命名注冊遠程對象,利用java.rmi.Naming的方法
客戶端:
(1)編寫客戶機類,調用遠程對象上的方法。利用java.rmi.Naming的方法
(2)啟動注冊庫start rmiregistry [port]
(3)運行服務端主類,創建遠程對象,并向注冊庫注冊該對象引用
(4)運行客戶機
在書的13頁
一個say hello的例子:
新建文件夾testrmi
里面寫四個類
(1)HelloInterface.java(遠程接口)
并且編譯
(2)HelloImplementor.java(服務器類,實現遠程接口)
并且編譯
(3)生成存根 rmic –v1.2 testrmi.HelloImplementor
前三步:
(4)編寫主類HelloHelper 實例化服務器類,生成遠程對象,并且向注冊庫命名注冊遠程對象
并且編譯,這里不貼圖片
(5)啟動注冊庫
然后運行HelloHelper,
這里出錯,看英文注釋,不要老想谷歌找答案,exportException:port already in use:1099,意思就是1099這個端口被占用,不能用了
所以我們另開一個dos,輸入命令:netstat -ano|findstr "1099",找到這個端口,記住PID,這里是9908
查看是哪個進程或者程序占用了1099端口
tasklist|findstr "9908"
發現是剛剛start rmiregistry的引發的程序,我們把它結束
這樣就可以了,
(5)寫客戶端類
編譯
再運行客戶端類
這樣就完成了
ps:這里的類不能在myeclipse里寫,因為文件里有包,而包得在classpath里寫出該包的路徑才可以運行。
最后謝謝這位
http://www.cnblogs.com/gongyu/p/3962635.html