Hello.java 接口
package example.hello;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Hello extends Remote{
String sayHello() throws RemoteException;
}
Server.java
package example.hello;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class Server implements Hello{
public Server(){}
public String sayHello(){
return "Hello World";
}
public static void main(String args[]){
try{
Server obj = new Server();
Hello stub = (Hello)UnicastRemoteObject.exportObject(obj,0);
Registry registry = LocateRegistry.getRegistry();
registry.bind("Hello",stub);
System.err.println("Server ready");
}catch(Exception e){
System.err.println("Server expection:" + e.toString());
e.printStackTrace();
}
}
}
Client.java
package example.hello;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client{
private Client(){}
public static void main(String args[]){
String host = (args.length < 1)? null : args[0];
try{
Registry registry = LocateRegistry.getRegistry(host);
Hello stub = (Hello)registry.lookup("Hello");
String response = stub.sayHello();
System.out.println("reponse:" + response);
}catch(Exception e){
System.err.println("Client exception:" + e.toString());
e.printStackTrace();
}
}
}
使用javac进行编译;
运行步骤:
Start the Java RMI registry
Start the server
Run the client
***********遇到的问题:
1.直接使用javac Hello.java Client.java Server.java 无法自动生成example等一系列目录,求各位大神解答。(使用javac -d 则可以正常生成)