程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 十分鐘學會Java RMI

十分鐘學會Java RMI

編輯:關於JAVA

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,成功調用.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved