2012-03-15 63 views
0

我正在閱讀RMI文檔,並想知道是否可以自動化RMI? 例如,我有4個類 1個接口,1個實現類,1個服務器類和1個客戶端類。 現在爲了遠程訪問對象一個具有是否可以自動化RMI?

  1. 編譯所有的類

    javac class.java 
    
  2. 啓動rmiregistry的
  3. 啓動服務器
  4. 運行客戶端

    java client 
    

這將顯示output.But我可以創建,導出和綁定服務器對象RMI註冊表自動時創建的類對象?只要對象處於活動狀態並且客戶端可以開始訪問方法,服務器就準備好了嗎?

我只有1個類是一個服務器,它不是由任何其他類訪問,除了客戶端,所以也沒有安全問題也涉及到這一點。

我的主要動機是執行上面列出的代碼本身的所有4個步驟,並使服務器類方法可以訪問客戶端。無需手動執行javac,啓動rmiregistry,啓動服務器和Java客戶端。

而且是有可能在客戶端訪問服務器,而不象start rmiregistrystart server任何命令從服務器端中運行,如果該服務器使用LocateRegistry.getRegistry()代替LocateRegisgtry.creareRegistry(1099)??

+0

你可以使用任何你想要的腳本語言,船該腳本的代碼的其餘部分。請記住,根據您選擇的內容,用戶需要設置運行時環境。最常見的方法之一是批處理/ bash腳本。 – hovanessyan 2012-03-15 13:42:22

+0

您可以通過ANT腳本做到這一點請通過http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html爲基礎 – 2012-03-15 13:38:29

+0

你就是不行。你不能寫一個會導致服務器將自己綁定到註冊表中的ANT腳本。 – EJP 2012-03-16 01:30:48

回答

2

如果您滿足於使註冊表的生命週期與服務器進程的生命週期相同,LocateRegistry類有createRegistry(...)方法,這些方法允許您輕鬆構建進程內註冊表。所有的rmiregistry程序都會在打電話給LocateRegistry.createRegistry(1099);時加上一個小小的包裝。

+0

非常感謝,解決了我的問題.. :) – Galaxin 2012-03-20 17:45:34

相關問題