仓蓝

日记本

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  23 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

  在网上广为流传的一份BlackBerry应用程序开发者指南里边详细介绍如何用BlackBerry API开发BlackBerry application的各方面内容。

  但是我们一般都是用Java ME开发,开发出来的程序是jar格式,可以运行在大部分型号的手机上。可是BlackBerry是不支持jar的,它支持的是cod格式。所以如果你想你开发的Java ME程序运行在BlackBerry上,就必须先把它转为cod格式。

  要把一般Java ME程序转为cod可以在程序开发编译过程序中转,也可以对打包好的jar转。

  ◆对已经打包好的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, 如果环境变量没有设置,这里就要用绝对路径:C:\Program Files\Research In Motion\BlackBerry JDE 4.2.1\bin\rapc, 当然你可以把它写成一个.bat文件来执行。而网上你可以搜索到一个名为Java2Cod.exe的小程序可以直接转换。)

  ◆在JDE中编译程序:无论你是用BlackBerry API或者Java ME/midp API来开发Java ME程序,都可以在JDE上编译。最终他会自动打包成cod文件。

  ◆在其IDE中编译打包:因为我是用NetBeans来开发的,所以本人只能提供NetBeans开发BlackBerry程序的见解。而本人是在 NetBeans中用Java ME polish来整合开发的。下边介绍Java ME polish中开发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代码

  1. <property        name="blackberry.home" 
  2.  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开发的上海柱塞阀,就要就把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的环境下写过一个test app,是能成功运行的,希望对初接触BlackBerry的朋友有帮助。

     


     

    posted on 2012-02-03 22:32 cangshi 阅读(361) 评论(0)  编辑  收藏 所属分类: java

    只有注册用户登录后才能发表评论。


    网站导航: