Ice的安装与入门实验(超详细)

Ice的安装与入门实验(超详细)

  1. 下载ice的相关版本

我下载的是Ice-3.4.0.msi ,下载链接:https://zeroc.com/download/Ice/3.4/,目前的版本已经超过了现在的这个,如果你也可以下载你喜欢的版本,安装步骤其实差不多

  1. 安装Ice

  2.1双击msi程序,出现如下界面,点击Next

 

 

2.2选择access,这是必须的,然后点击next,如下图:

 

2.3选择需要安装的文件夹(如果不需要修改,则保持默认),点击next

 

 

 

2.4点击next进行安装

 

 

2.5配置Ice的环境变量,步骤如下:

           2.5.1右键点击机选择属性à选择高级系统设置à选择环境变量à在系统环境变量下查找CLASSPATH,双击,将D:\libs\softwore\ice\Ice-3.5.0\lib粘贴到类路径的后面,路径是你安装Ice的路径,所以你的路径可能与我的不一样à在系统环境变量下双击path,将D:\libs\softwore\ice\Ice-3.5.0\bin粘贴到path的后面,切记在不同路径之间有全角分好(;)

Ps:classpath是存放系统需要的jar包的路径,path是存放可执行程序的路径

 

2.6测试Ice是否安装成功,步骤如下:

           点击开始按钮,输入cmdà在出现的dos窗口中输入 icegridnode –version,如果出现如下的界面则说明安装成功

 

 

3.ice简单的测试用例

           3.1在任意的目录下新建一个文件夹,子该文件下新建一个ice文件,取名Printer.ice

如下图

 

 

           3.2书写测试代码,代码如下

           module Demo{

                   terface Printer{

                              id printString(string s);

                  };

};

                   3.3打开cmd(就是步骤2.6打开cmd的方法)

                   在dos窗口中切换目录到你所新建的ice文件所在目录,如下图:

 

 

 

Ps:具体的目录你可以复制粘贴,但是在dos中是不可以使用ctrl + v的,你可以直接鼠右击选择粘贴即可

3.4此时你会发现目录下多了一个文件夹,如下图:

 

对照3.1图发现多吃了一个文件夹

 

3.5打开eclipse,新建一个Java project,将3.4中多出来的文件夹拷贝到该工程的src目录下,导入后可能会出现错误,下面有解决的方法

 

 

 

 

3.5.1 client.java 的代码

package utils;

 

import Demo.PrinterPrx;

import Demo.PrinterPrxHelper;

import Ice.Communicator;

import Ice.ObjectPrx;

import Ice.Util;

 

public class Client {

public static void main(String[] args) {

           int status =0;

           Communicator ic = null;

           try {

                    ic = Util.initialize(args);

                    ObjectPrx base  = ic.stringToProxy("SimplePrinter:default -p 10000");

                    PrinterPrx printer = PrinterPrxHelper.checkedCast(base);

                    if(printer == null) throw new Error("Invalid proxy");

                    printer.printString("Hello World !!");

           } catch (Error e) {

                    System.err.println(e.getMessage());

                    status = 1;

           }

          

           if(ic != null){

                    try {

                             ic.destroy();

                    } catch (Exception e) {

                             System.err.println(e.getMessage());

                             status = 1;

                    }

           }

           System.exit(status);

}

}

 

3.5.2 Server.java 的代码

 

package utils;

 

import Ice.Communicator;

import Ice.ObjectAdapter;

import Ice.Util;

public class Server {

public static void main(String[] args) {

           int status = 0;

           Communicator ic = null;

          

           try {

ic = Util.initialize(args);

                    ObjectAdapter dapter = ic.createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000");

                    Ice.Object obj = new PrinterI();

                    adapter.add(obj, Util.stringToIdentity("SimplePrinter"));

                    adapter.activate();

                    ic.waitForShutdown();

           } catch (Exception e) {

                    System.err.println(e.getMessage());

                    status = 1;

           }

           if(ic != null){

                    try {

                             ic.destroy();

                    } catch (Exception e) {

                             System.err.println(e.getMessage());

                             status = 1;

                    }

           }

           System.exit(status);

}

}

 

 

3.5.3Printer.java的代码

 

package utils;

 

import Demo._PrinterDisp;

public class PrinterI extends _PrinterDisp {

    public void printString(String s, Ice.Current current){

       System.out.println(s);

    }

}

 

3.5.4导入Demo出现错误的解决方法

    右击projectà选择build path 下的Add External Archivesà再出现的界面中找到Ice.jar所在的位置(就是你安装Ice文件夹下的lib包),选中之后报错问题会解决

3.6输出测试结果,在Server.java下运行文件,再在Client.java下运行文件,会出现如下结果,如图:

 

Ps:*******befor*****

与******after******是我原来添加的代码,不用管

 

进过上面的步骤,已经基本入门了,至于具体的代码含义与其他文件中代码的意思,捏可以在后续的学习过程中不断的回看加深理解

 

posted on 2015-04-30 15:53  夜晚的猫头鹰  阅读(1979)  评论(0)    收藏  举报

导航