2011-07-08 53 views
0

我是新來的Java RMI,我只是試圖運行「Hello World」程序(代碼顯示在郵件的末尾)如何將文件從服務器導出到客戶端 - Java RMI的

基本上,我在我的一臺計算機中有一個遠程類,一個遠程接口和一個服務器類,另一臺計算機中有一個客戶端類。 我想從使用客戶端的服務器獲取「hello」消息。 問題是如果我沒有遠程接口和客戶端所在的同一目錄下的存根,我無法編譯客戶端並使其運行,並且同時如果我不能運行服務器有那些在服務器相同的目錄中。

我使用javac編譯服務器/遠程類/接口,然後使用rmic編譯器。 「rmic你好」。

我想知道我怎麼能得到這個,而不必在兩臺計算機上的所有文件(這就是爲什麼我希望把它分發)

提前感謝合作!

代碼:

遠程接口:

import java.rmi.*; 

//Remote Interface for the "Hello, world!" example. 
public interface HelloInterface extends Remote { 
    public String say() throws RemoteException; 
} 

遠程類:

import java.rmi.*; 
import java.rmi.server.*; 

public class Hello extends UnicastRemoteObject implements HelloInterface { 
    private String message; 

    public Hello (String msg) throws RemoteException { 
    message = msg; 
    } 

    public String say() throws RemoteException { 
    return message; 
    } 
} 

客戶: 進口的java.rmi。*;

public class Client 
{ 
    public static void main (String[] argv) 
    { 
     try 
       { 
      HelloInterface hello= (HelloInterface) Naming.lookup(host); //the string  representing the host was modified to be posted here 
      System.out.println (hello.say()); 
     } 
     catch (Exception e) 
     { 
      System.out.println ("Hello Server exception: " + e); 
     } 
    } 
} 

服務器:

public static void main (String[] argv) { 
    try { 
     Naming.rebind ("Hello", new Hello ("Hello, world!")); 
     System.out.println ("Hello Server is ready."); 
    } catch (Exception e) { 
     System.out.println ("Hello Server failed: " + e); 
    } 
    } 

回答

0

我的猜測是簡單地創建在兩個/兩端相同的源。

相關問題