如果你正在研究多智能體系統(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下載
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可選的組件
Swarm安裝
現在我們來在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能夠編譯Java for Swarm源文件
這一步的主要工作是在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能夠執行Swarm應用程序
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運行測試
很酷吧!