十分钟学会Java RMI

RMI是Java平台实现远程调用的规范,下面是一个小例子,本机测试通过


  一共有三个java类,远程接口,服务端程序,客户端程序


  远程接口:


import java.rmi.;



public interface HelloIn extends java.rmi.Remote{

 String sayHello() throws RemoteException;

}


  服务端程序:


/**
author by http://www.bt285.cn  http://www.5a520.cn

/

import java.rmi.
;

import java.net.;

import java.rmi.registry.
;

import java.rmi.server.;



public class Hello extends java.rmi.server.UnicastRemoteObject implements HelloIn{

 public Hello() throws RemoteException{

  super();

 }

 public String sayHello() throws RemoteException{

  return "Hello,World!";

 }

 public static void main(String[] args){

  //System.setSecurityManager(new java.rmi.RMISecurityManager());

  try{

 

      Hello h=new Hello();

      java.rmi.Naming.rebind("hello",h);

      System.out.print("Ready……");

   }

   catch(Exception e){

    e.printStackTrace();

   }

 

 }

}


  执行服务端程序前在命令行方式下启动rmi的注册程序:  start rmiregistry


  客户端程序:


/**
author by http://www.bt285.cn  http://www.5a520.cn

/





import java.rmi.
;

import java.rmi.registry.*;



public class Helloworld{

 public static void main(String[] args){

  //System.setProperty( "java.security.policy", "client.policy" );

  //System.setSecurityManager(new java.rmi.RMISecurityManager());

  try{

   HelloIn hi=(HelloIn)Naming.lookup("//fengl/hello");

   for(int i=0;i<10;i++){

    System.out.println(hi.sayHello());

   }

  }

  catch(Exception e){

   e.printStackTrace();

  }

  }

 }


  执行客户端程序前先用  rmic Hello  生成Stub 和 Skeleton 的class,它们


  实际上是远程调用的底层的实现。


  最后执行java Helloworld 控制台打印出 Hello,World,成功调用.