RMI试验(DOS环境)

注:所有文件用记事本编写就行,然后用再dos环境下调用命令来进行操作。比较容易出错的是为系统配置有关jdk的环境变量。

JDK配置环境变量

首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量里需要设置三个属性“java_home”、“path”、“classpath”,其中在没安装过jdk的环境下,path属性是本来存在的。而java_home和classpath是不存在的。
首先点“新建”,然后在变量名写上java_home,顾名其意该变量的含义就是java的安装路径,呵呵,然后在变量值写入刚才安装的路径“E:/Java/jdk1.6.0_02”.
其次在系统变量里面找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别java命令,则变量值为“%java_home%/bin;%java_home%/jre/bin”,(其中“%java_home%”的意思为刚才设置java_home的值),也可以直接写上“E:/Java/jdk1.6.0_02”
最后再点“新建”,然后在变量名上写classpath,该变量的含义是为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。其值为“.;%java_home%/lib;%java_home%/lib/tools.jar (要加.表示当前路径)”,与“%java_home%有相同意思”

以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。先打开“开始”->“运行”,打入“cmd”,进入dos系统界面。然后打“java -version”,如果安装成功。系统会显示java的版本信息。
另外安装java时,安装jdk 和 jre要有两个目录,安装时都选择在同一目录会出现bin和lib文件覆盖现象,从而出现无lib/tools.jar文件的现象,到时即使正确设置了环境变量后javac也不可用!!因此安装jdk后一定要看下在jdk/lib下是否有tools.jar文件,有的话按照上面的方法设置环境变量就ok了

classpath作用:用于计算机找到Java的可执行文件,也就是.class文件。

如果将classpath的值设定为C:/myjava;. Java虚拟机先查找C:/myjava 然后再查找当前所在目录。

classpath的值非常忌讳空格,以后在工作中也不要把源文件放在有空格的目录中。目录中也不允许出现中文字符。

 

定义远程接口(Arith.java)

public interface Arith extends java.rmi.Remote
{
 int [] add(int a[],int b[]) throws java.rmi.RemoteException;
}

 

实现远程接口(ArithImpl.java)

import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
public class ArithImpl extends UnicastRemoteObject implements Arith
{
 private String objectName;

 public ArithImpl(String s) throws RemoteException
{
 super();
 objectName=s;
}

public int[] add(int a[],int b[])
{

 int c[]=new int[10];
 for(int i=0;i<8;i++)
  c[i]=a[i]+b[i];
 return c;
}

public static void main(String argv[])
{
 RMISecurityManager sm=new RMISecurityManager();
 System.setSecurityManager(sm);
 try{
 ArithImpl obj=new ArithImpl("ArithServer");
 Naming.rebind("//localhost/ArithServer",obj);
 System.out.println("ArithServer bound in registry");
 }catch(Exception e)
{
 System.out.println("ArithImpl error.");
 e.printStackTrace();
}
}
}

使用远程接口开发客户程序

import java.rmi.*;
import java.net.*;
public class ArithApp{
 public static void main(String args[])
{
 int a[]={1,2,3,4,5,6,7,8};
 int b[]={1,2,3,4,5,6,7,8};
 int result[]=new int[10];
 
try{
 Arith obj=(Arith)Naming.lookup("//localhost/ArithServer");
 result=obj.add(a,b);
}catch(Exception e)
{
 System.out.println("ArithApp:"+e.getMessage());
 e.printStackTrace();
}
System.out.print("Results are :"); 
for(int i=0;i<result.length;i++)
System.out.print(result[i]+"  ");
System.out.println();
}
}

写好这3个文件之后,进入dos环境,输入以下命令

(1)javac Arith.java

(2)javac ArithImpl.java

(3)javac ArithApp.java

(4)rmic ArithImpl(这一步将会产生一个叫做ArithImpl_Stub.class的文件)

(5)rmiregistry &

注:做完以上操作之后,在文件夹中放入java.policy文件(这个可以再jdk安装目录下找到)

(6)打开另外一个dos环境,输入java -Djava.security.policy=java.policy ArithImpl(如果成功,会提示bind成功)

(7)打开另外一个dos环境,输入java ArithApp(如果成功,会得到一串数字,这是我们调用方法得到的结果)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值