ICE自带了很多示例程序, 除了已编译为可直接运行的exe程序外, 还有很多使用其它语言例如Java书写的程序都不能直接编译运行. 拿demoj的IceStorm目录中的clock为例, 正常启动顺序如下:
1.设置IceBox环境:
ICE_HOME:C:\Ice-3.3.0
CLASSPATH: %ICE_HOME%\lib\Ice.jar;%ICE_HOME%\lib\db.jar;classes;%CLASSPATH%
PATH:%ICE_HOME%\bin;%PATH%
- 启动IceBox (需要事先配置好ICE的环境变量):
icebox –Ice.Config=config.icebox(先进入ICEStorm\Clock目录下)
- 运行Subscriber
java Subscriber - 运行Publisher
java Publisher
但事实上运行Subscriber的时候会提示错误:
Exception in thread “main” java.lang.NoClassDefFoundError: Subscriber
这会困惑住很多ICE新手, 往往到了这里就卡住没办法了.
试着输入 javac subscriber.java 重新编译也有错误信息: 找不到软件包Demo. 其实看到这里就应该明白了, 我们需要做的就是使用clock的SLICE定义生成Demo包:
md generated
slice2java –output-dir generated Clock.ice
然后把generated目录下的Demo整目录复制出来, 放在clock目录下, 再重新编译运行Publisher和Subscriber就OK了.