在NetBeans Java ME polish環(huán)境下開發(fā)BlackBerry應用
本文轉自一位正在做Java ME polish在BlackBerry上運行的項目網(wǎng)友的博客,詳解了在NetBeans Java ME polish環(huán)境下開發(fā)BlackBerry應用。
以下為轉發(fā)的全文:
近日公司要求把之前做的一個Java ME polish項目在BlackBerry上運行。我是一個新手,所以一星期了,還是有小部分bug沒能成功運行。下邊是我對BlackBerry應用程序開發(fā)的一些見解:BlackBerry的介紹我不說了,想了解的朋友可以在網(wǎng)上搜索。在開發(fā)之前準備的開發(fā)工具:Java JDK,BlackBerry JDE,BlackBerry emulator. 其中BlackBerry JDE/emulator 可以到BlackBerry主站下載:www.blackberry.com。
在網(wǎng)上廣為流傳的一份BlackBerry應用程序開發(fā)者指南里邊詳細介紹如何用BlackBerry API開發(fā)BlackBerry application的各方面內容。
但是我們一般都是用Java ME開發(fā),開發(fā)出來的程序是jar格式,可以運行在大部分型號的手機上。可是BlackBerry是不支持jar的,它支持的是cod格式。所以如果你想你開發(fā)的Java ME程序運行在BlackBerry上,就必須先把它轉為cod格式。
要把一般Java ME程序轉為cod可以在程序開發(fā)編譯過程序中轉,也可以對打包好的jar轉。
◆對已經(jīng)打包好的jar文件轉為BlackBerrycod格式:進入jar文件所在目錄,在cmd(命令行)中進入相應目錄,輸入下邊命令就可以了:引用rapc import="C:\Program Files\Research In Motion\BlackBerry JDE 4.2.1\lib\net_rim_api.jar" codename=TestBB jad=TestBB.jad TestBB.jar
(注:這里rapc 是 C:\Program Files\Research In Motion\BlackBerry JDE 4.2.1\bin\ 目錄里的 rapc.exe, 如果環(huán)境變量沒有設置,這里就要用絕對路徑:C:\Program Files\Research In Motion\BlackBerry JDE 4.2.1\bin\rapc, 當然你可以把它寫成一個.bat文件來執(zhí)行。而網(wǎng)上你可以搜索到一個名為Java2Cod.exe的小程序可以直接轉換。)
◆在JDE中編譯程序:無論你是用BlackBerry API或者Java ME/midp API來開發(fā)Java ME程序,都可以在JDE上編譯。最終他會自動打包成cod文件。
◆在其IDE中編譯打包:因為我是用NetBeans來開發(fā)的,所以本人只能提供NetBeans開發(fā)BlackBerry程序的見解。而本人是在NetBeans中用Java ME polish來整合開發(fā)的。下邊介紹Java ME polish中開發(fā)BlackBerry程序
(可以參考http://www.j2mepolish.org/docs/platform-blackberry.html)
一、在Java ME polish安裝目錄里找到platforms.xml,在里邊的BlackBerry部分中,加上<capability name="build.Finalizer" value="jar2cod" />(我用的是Preview 2.0版本,里邊這一句是注釋掉,所以要把它activate,也可以在devices.xml中在你想用的emulator 屬性里加上這一句。如果沒有這一句編譯時就不會自動把jar轉換為cod文件的.)
polish里支持的版本***系4.2.0,如果你安裝BlackBerry版本***的如4.2.1/4.3.0,哪么你要把${BlackBerry目錄}/lib/net_rim_API.jar copy到${Java MEpolish}/import里,在platforms.xml的BlackBerry中修改<capability name="build.BootClassPath" value="net_rim_API.jar" />
二、在工程的build.xml中添加blackberry.home屬性(你安裝的BlackBerry JDE目錄)
Java代碼
- <property name="blackberry.home"
- location="C:/Program Files/Research In Motion/BlackBerry JDE 4.2.1"
- />
三、如果你編譯后打包的jad文件中缺少MicroEdition-Configuration和MicroEdition-Profile兩個屬性是不能成功轉成cod文件的。這可以在工程的build.xml中的<build>屬性里的<jad>元素中添加:
Java代碼
- <jad> <attribute target="jad" name="MicroEdition-Configuration" value="CLDC-1.1"
- if="polish.cldc11"/> <attribute target="jad" name="MicroEdition-Profile" value="MIDP-2.0"/>
- </jad>
四、如果你用了混淆器的(obfuscator),要把它unactivate,不要用它,因為BlackBerry中的rapc轉換過程中會對程序混淆的。
Java代碼
- <obfuscator name="ProGuard" unless="test or polish.blackberry" >
- </obfuscator>
五、在工程的build.xml中的<Java MEpolish>屬性requirements用你想編譯的BlackBerryemulator,如:
Java代碼
- <deviceRequirements> <requirement name="Identifier" value="BlackBerry/8800" />
- </deviceRequirements>
如果你的程序是一般的Java ME程序,那么就可以編譯運行了。但如果你是用BlackBerry API開發(fā)的,就要就把build.xml里<build>元素中的<midlet>,改為<main>,同時要添加polish.classes.midlet-1的variable。如:
Java代碼
- <!-- midlets definition --> <main class="com.protel.BlackBerryim.ui.BlackBerryIMMidlet" />
- <!-- project-wide variables - used for preprocessing --> <variables> <variable name="polish.classes.midlet-1" value=" " />
- </variables>
(注:polish.classes.midlet-1的value是" ",中間有一個空格的,我試過了,如果沒有這個定義變量或者這個值中間沒有空格,jar是不能轉為cod格式。)
這是我初接觸BlackBerry時的一點心得。我用BlackBerry API在NetBeans+Java ME polish的環(huán)境下寫過一個test app,是能成功運行的,希望對初接觸BlackBerry的朋友有幫助。
【編輯推薦】