Ice的安装与入门实验(超详细)
Ice的安装与入门实验(超详细)
- 下载ice的相关版本
我下载的是Ice-3.4.0.msi ,下载链接:https://zeroc.com/download/Ice/3.4/,目前的版本已经超过了现在的这个,如果你也可以下载你喜欢的版本,安装步骤其实差不多
- 安装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******是我原来添加的代码,不用管
进过上面的步骤,已经基本入门了,至于具体的代码含义与其他文件中代码的意思,捏可以在后续的学习过程中不断的回看加深理解

浙公网安备 33010602011771号