如果你正在研究多智能体系统(Multi-Agent Systems,MAS),如果恰巧你有一点Java程序设计基础,如果更巧的是你对用Swarm for Java开发MAS抱有浓厚的兴趣,那么请跟随我一起来搭建一个JDK+JCreator+Swarm的轻量级MAS开发环境吧。不过我们默认你已经安装好JDK和JCreator——没装好的话请自行查找相关资料并安装。关于JDK,我用的是JDK1.5,不过JDK6早已经发布了;关于JCreator,我用的同样是古董级的3.5版本,无他,习惯而已。
对于Swarm就不多做介绍了,下面直奔主题,follow me。
Swarm的官方主页(http://www.swarm.org/)提供了其下载地址http://ftp.swarm.org/。下载页面的目录如图1所示。
|
图1 Swarm下载主页
要下载Java版本的Swarm,请按照图2提示的路径找到Swarm-2.2-java.tar.gz或Swarm-2.2-java.zip压缩包。这是截止到我写此文时已发布的版本。
|
图2 Swarm for Java下载页
这里,我推荐另一个下载地址http://eco83.econ.unito.it/dottorato/。该地址提供了搭建Swarmfor Java开发环境所需要的所有组件——除了JCreator。打开下载链接,界面如图3所示。
|
图3 Swarm CD下载主页
找到Swarm-2.2-Tutorial-CD,点进去之后有两个选项:可以下载比较大的.iso集成包,其中包含了JDK和eclipse等搭建Java开发环境所需要的软件或工具;也可以打开第二个文件夹,选择自己所需要的组件下载。
|
图4 Swarm CD下载页
我们打开第二个文件夹,找到并下载StartJavaSwarm.bat、Swarm-2.2-java.tar.gz、jheatbugs-2001-03-28.tar.gz、jmousetrap-2001-09-13.tar.gz。其中后两个是Swarm示例程序。此外,doc-swarm有诸多参考资料、手册,可以选择性下载。
|
图5 Swarm CD可选的组件
现在我们来在JDK基础上构建Swarm运行环境。解压上述已下载的压缩包,其包含的子目录如下:
Swarm-2.2-java/ …………………/bin/ …………………/include/ …………………/lib/ …………………/share/ |
图6 Swarm开发包的子目录
然后在你自己的硬盘中开辟一个专用空间,建立一个文件夹,用于存放Swarm的各个组件以及你自己开发的Swarm程序文件。将上述文件全部复制到指定目录下。本人构建的工作目录如下:
D:/JIDE/Swarm/ …………………/bin/ …………………/include/ …………………/lib/ …………………/share/ …………………/work/ …………………/StartJavaSwarm.bat …………………/Swarm2.2_Java_API.chm |
图7 Swarm工作目录
其中,/work/目录是个人程序/项目源代码存放的场所。Swarm2.2_Java_API.chm是从Swarm主页上下载的API文档。
为了能够在我们的开发环境中启动Swarm,需要修改StartJavaSwarm.bat文件。打开StartJavaSwarm.bat。
StartJavaSwarm.bat |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
@echo off set SWARMHOME=C:/Swarm-2.2-java set JAVA_HOME=C:/j2sdk1.4.2_08 set SWARMDIR=%SWARMHOME% set PATH=%PATH%;.;%SWARMHOME%/bin;%JAVA_HOME%/bin set LTDL_LIBRARY_PATH=%SWARMHOME%/lib set LD_LIBRARY_PATH=%SWARMHOME%/lib set CLASSPATH=%SWARMHOME%/share/swarm/kawa.jar;%SWARMHOME%/share/swarm/swarm.jar;%CLASSPATH% echo SWARMHOME=%SWARMHOME% echo JAVA_HOME=%JAVA_HOME% echo JavaSwarm Variables initializated CMD /K |
图8 原始StartJavaSwarm.bat文件
我们来修改以上文件。这里先给出修改后的结果,再逐行解释。
StartJavaSwarm.bat |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
@echo off set SWARMHOME=D:/JIDE/Swarm set JAVA_HOME=C:/Program Files/Java/jdk1.5.0 set SWARMDIR=%SWARMHOME% set PATH=%PATH%;.;%SWARMHOME%/bin set LTDL_LIBRARY_PATH=%SWARMHOME%/lib set LD_LIBRARY_PATH=%SWARMHOME%/lib set CLASSPATH=%SWARMHOME%/share/swarm/kawa.jar;%SWARMHOME%/share/swarm/swarm.jar;%CLASSPATH% echo SWARMHOME=%SWARMHOME% echo JAVA_HOME=%JAVA_HOME% echo JavaSwarm Variables initializated java %1 exit CMD /K |
图9 修改后的StartJavaSwarm.bat文件
新文件第2行修改了SWARMHOME环境变量,它的值是开发环境所在目录。
第3行修改成JAVA_HOME环境变量所在目录。
第4行不需要修改。
第5行稍微解释一下。由于本人的Windows操作系统中的环境变量PATH已被设置为包含%JAVA_HOME%/bin,故这里将其删去。一般情况下这一行可不作修改。
第6~11行都不需要修改。
第12、13行为新添加的两行,这是为了方便在JCreator中直接运行最终的Swarm程序。命令“java %1”用于运行.class文件,“%1”是传递给java命令的参数,代表当前的.class文件,在下文中将详细解释。
这一步的主要工作是在JCreator中配置类路径,以使JCreator能够顺利编译Swarm程序源文件。我用的是JCreator3.5 Pro汉化版,这一版本已经伴随我多年了,中途当然也出轨过,试图更新到4.5版(目前最新版已到了5.0了)。不过用来用去,还是3.5的用着最舒服。老婆还是原配的好啊。
打开JCreator,依次选择“配置”——“选项”,打开选项卡,如图10所示。
|
图10 JCreator配置
找到并点击“JDK配置文件”,在右边视图中选中“JDK 版本 1.5.0”选项(有可能你的配置是JDK 6版本),如图11所示。
图11 JCreator选项界面
点击“编辑”,出现“JDK 配置文件”视图。
图12 JCreator的JDK配置文件界面
在“类”的配置中,选择“添加”——“添加存档”。
图13 添加类存档
将D:/JIDE/Swarm/share/swarm下的两个.jar文件kawa.jar和swarm.jar添加到类路径中。
图14 选择所需的.jar文件
这样就可以在JCreator中编译swarm源程序了。我们打开一个示例程序试试。
将下载的示例程序jmousetrap解压并复制到/work/目录下。打开StartMousetrap.java并编译。
成功编译后,这时你会发现,想在JCreator中通过F5直接运行StartMousetrap.class是不能成功的,因为Swarm项目文件的运行依赖于StartJavaSwarm.bat中的设置。因此,通常应该先双击运行StartJavaSwarm.bat,然后在命令行中以“java*”的形式运行Swarm程序。
如果你足够懒的话,你应该会很希望像运行普通的Java程序一样,一键运行Swarm项目程序。
下面提供在JCreator中的解决方案。
JCreator提供了自定义工具,可以为开发过程中常用的辅助工具建立快捷方式到工具栏中,从而在需要时可以很方便地打开。
添加工具的方式如下:依次点“配置”——“选项”,选择“工具”。
图15 配置辅助工具
点击“新建”,这里列出了可以作为工具的应用程序类型。我们要为StartJavaSwarm.bat添加工具,需要选择“程序”。
图16 新建程序
选择工作目录下的StartJavaSwarm.bat文件,打开。
图17 StartJavaSwarm.bat
接下来我们需要配置StartJavaSwarm.bat的参数。还是在“选项”界面,点开左边树形栏目的“工具”,找到刚才创建的StartJavaSwarm(名称可以自行更改),右边界面给出了该工具的配置。如图18所示,在参数一栏中输入:$[CurClass]。
这里的$[CurClass]是java.exe的命令行参数,代表当前的类文件,也就是你的JCreator界面当期显示的Java文件编译生成的.class文件。还记得前面StartJavaSwarm.bat文件第12行的“java %1”吗?$[CurClass]的值被传递给%1,经过java命令后程序开始运行。
图18 配置参数
现在,我们可以在JCreator界面上一键运行Swarm了。如下图所示,在JCreator的工具栏上的第一把工具就是StartJavaSwarm了。它告诉我们,你可以用ctrl+1的方式快捷运行该工具。如果你的JCreator界面没有显示工具栏,请右击任务栏的空白处,将“工具”一项的前面勾上。
图19 创建好工具后的界面
好了,测试一下吧。打开示例程序jmousetrap中main方法所在的文件StartMousetrap.java,编译,然后按ctrl+1。
图20 Swarm运行测试
很酷吧!