天天看點

NetBeans 結合 bb-ant-tools 編譯黑莓應用

先安裝netbeans的 j2me開發插件

之後添加 "JAVA平台管理" -> J2ME -> 定制J2ME平台 仿真器 (翻譯過來就這個含義) 之後添加 BB模拟器的路徑

然後填寫一些基本資訊(略過) 

下一步之後,移除除開net_rim_api.jar的所有jar包(隻保留net_rim_api.jar一個) 

然後建立J2ME項目

修改預設的build.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- You may freely edit this file. See commented blocks below for -->

<!-- some examples of how to customize the build. -->

<!-- (If you delete it and reopen the project it will be recreated.) -->

<project name="BlackberryZWhereCallMe" default="jar" basedir=".">

<description>Builds, tests, and runs the project .</description>

<import file="nbproject/build-impl.xml"/>

<!-- 定義任務文法 -->

<typedef resource="bb-ant-defs.xml" classpath="E:/bb-ant-tools.jar" />

<property name="rim.blackberry.home" location="C:/Program Files/Research In Motion/BlackBerry JDE 4.5.0"/>

<property name="rim.blackberry.emulator" value="8700-black"/>

<property name="rim.blackberry.jdwp.port" value="8001"/>

<!-- cod檔案生成目錄 -->

<property name="dist" value="E:/codeproject/BlackberryZWhereCallMe/dist/snk"/>

<target name="bbbuild" description="blackberry build" depends="init">

<mkdir dir="${dist}" />

<rapc quiet="false" output="${name}"

jdehome="${rim.blackberry.home}"

destdir="${dist}"

srcdir="E:/codeproject/BlackberryZWhereCallMe/src">

<jdp

title="zWhereCallMe" vendor="zhangjianying" version="0.1" description="Is CopyRight by zjy"

systemmodule="true"

runonstartup="true" startuptier="7" type="library" />

</rapc>

</target>

<target name="post-jar">

<antcall target="bbbuild" />

<!--

<exec os="Windows NT Windows 95 Windows 98 Windows 2000 Windows XP"

dir="${dist.root.dir}"

executable="${rim.blackberry.home}/bin/rapc.exe"

failonerror="true" resolveExecutable="true">

<arg value="import=${rim.blackberry.home}/lib/net_rim_api.jar"/>

<arg value="codename=${name}"/>

<arg value="-midlet"/>

<arg value="library=BlackberryZWhereCallMe"/>

<arg value="BlackberryZWhereCallMe.rapc warnkey=0x52424200;0x52525400"/>

<arg value="jad=${dist.jad}"/>

<arg value="${dist.jar}"/>

</exec>

-->

<echo description="">${jde.home}/lib/net_rim_api.jar</echo>

<rapc output="BlackberryZWhereCallMe"

jdkhome="E:/資料/JDK_IBM"

quiet="false"

srcdir="E:/codeproject/BlackberryZWhereCallMe/src"

import="${jde.home}/lib/net_rim_api.jar"

jdehome="${jde.home}" >

<jdp title="Kick Ass App" vendor="Slashdev" version="1.0" type="library" />

<!-- <copy file="${name}.alx" todir="${dist.root.dir}"/> -->

<target name="run" depends="init,jar">

<echo message="dddd=== ${dist.root.dir}"/>

<copy todir="${rim.blackberry.home}/simulator" verbose="true">

<fileset dir="${dist.root.dir}/snk">

<include name="**/${name}.*"/>

</fileset>

</copy>

dir="${rim.blackberry.home}/simulator"

executable="${rim.blackberry.home}/simulator/${rim.blackberry.emulator}.bat"

failonerror="true" resolveExecutable="true"/>

<target name="debug" depends="init,jar">

<fileset dir="${dist.root.dir}">

<delete file="${preprocessed.dir}/.timestamp"/>

<parallel>

<property name="jpda.port" value="${rim.blackberry.jdwp.port}"/>

<java jar="${rim.blackberry.home}/bin/JDWP.jar" fork="true" dir="${rim.blackberry.home}/bin">

<jvmarg value="-Xmx256M"/>

</java>

<sequential>

<sleep seconds="5"/>

<antcall target="nbdebug"/>

</sequential>

</parallel>

<target name="init.rim.blackberry" depends="init">

<condition property="rim.blackberry" value="true">

<or>

<equals arg1="Test" arg2="${config.active}"/>

</or>

</condition>

<target name="post-clean">

<echo>Post clean</echo>

<delete>

<fileset dir="${rim.blackberry.home}/simulator">

</delete>

</project>

注意事項 :

1  如果編譯過程中出現 不能建立JVM的提示

    到netbeans/etc目錄下修改相應的netbeans的啟動參數(如果你做了優化就容易引起這個問題)

    另一個辦法就是下載下傳bb-ant-tools.jar的源碼,修改一段代碼:

    将 ca.slashdev.bb.tasks.RapcTask

    中的 executeRapc()方法下的

      List<String> jvmArgs = ManagementFactory.getRuntimeMXBean().getInputArguments();

      for (String arg : jvmArgs) {

         if (arg.startsWith("-X"))

            java.createJvmarg().setValue(arg);

      }

      這段代碼注釋掉.

2 出現不支援的字元集警告時,

   在netbeans中點工程的屬性,将工程的字元集設定成警告中提醒的(如GBK)

3 不要使用預設dist檔案目錄作為輸出目錄,展不清楚為什麼,使用預設預設目錄的時候,會将源碼一起編譯到cod檔案中 (檢視方法用記事本直接打開編譯後的cod會發現源碼也打進去了)

    是以可以在 dist後加一個子目錄,比如 snk ,或者 4.5 ,5.0 等