JDK Installation
I use the JDK from SUN. With debian, it’s quiet easy to use it.
[root@Dahlia root]$ aptitude install sun-java6-bin sun-java6-demo \ sun-java6-doc sun-java6-jdk sun-java6-jre sun-java6-plugin
JDE Installation
Before install JDE on Linux, I have installed it on Windows. I haven’t success install with WINE tools.
[root@Dahlia root]$ mkdir -p /opt/RIM [root@Dahlia root]$ cp -R /mnt/win/Program\ Files/BlackBerry\ JDE\ 4.7.0/ /opt/RIM/sdk
Then, I need Java Toolkit from SUN (sun_java_wireless_toolkit-2.5.2_01-linuxi486.bin.sh).
I have installed this tool in /opt/RIM/WTK2.5.2.
[root@Dahlia root]$ sh sun_java_wireless_toolkit-2.5.2_01-linuxi486.bin.sh
http://java.sun.com/products/sjwtoolkit/download.html
Build COD application
To be able to build COD application from the sources (JAVA files) and a project file (RAPC file), I have written a little script.
[root@Dahlia root]$ mkdir -p /opt/RIM/tools [root@Dahlia root]$ cat > /opt/RIM/tools/build.sh #!/bin/bash SDK=/opt/RIM/sdk PREVERIFY=/opt/RIM/WTK2.5.2/bin PATH=$PATH:$PREVERIFY java -jar $SDK/bin/rapc.jar \ import=$SDK/lib/net_rim_api.jar \ codename=$1 \ $1.rapc \ *.java
Now, for the sample, I’m going to build the HelloWorld sample from the SDK.
[root@Dahlia root]$ mkdir project [root@Dahlia root]$ cd project [root@Dahlia project]$ cp -R /opt/RIM/sdk/samples/com/rim/samples/device/helloworlddemo . [root@Dahlia project]$ cd helloworlddemo [root@Dahlia helloworlddemo]$ cat > HelloWorldDemo.rapc MIDlet-Name: HelloWorldDemo MIDlet-Version: 0.9 MIDlet-Vendor: Research In Motion Ltd. MIDlet-Jar-URL: HelloWorldDemo.jar MIDlet-Jar-Size: 0 MicroEdition-Profile: MIDP-2.0 MicroEdition-Configuration: CLDC-1.1 MIDlet-1: Hello World Demo,img/helloworld_jde.png, RIM-MIDlet-Flags-1: 0 [root@Dahlia helloworlddemo]$ /opt/RIM/tools/build.sh HelloWorldDemo
Build Midlet application
With JDE, you can convert JAVA midlet to COD files.
To make this, I have written a little script.
[root@Dahlia root]$ mkdir -p /opt/RIM/tools [root@Dahlia root]$ cat > /opt/RIM/tools/jar2cod.sh #!/bin/bash SDK=/opt/RIM/sdk PREVERIFY=/opt/RIM/WTK2.5.2/bin PATH=$PATH:$PREVERIFY java -jar $SDK/bin/rapc.jar \ import=$SDK/lib/net_rim_api.jar \ codename=$1 \ -midlet \ jad=$1.jad \ $1.jar
Then…
[root@Dahlia root]$ /opt/RIM/tools/jar2cod.sh HelloWorldDemo
Signing Java applications
The last step is using the signature tool from the JDE.
First, you have to register you RIM’s developper to get your keys. You will receive three keys RBB, RCR and RRT :
- client-RBB-1234567890.csi
- client-RCR-1234567890.csi
- client-RRT-1234567890.csi
To use keys, you have to register with JDE tool. During the registration process, you have to be online. You have to enter your PIN code and a passphrase.
WARNING, you have to use the same PIN code and the same passphrase for each key.
[root@Dahlia root]$ cd /opt/RIM/sdk/bin [root@Dahlia bin]$ chmod 644 sigtool.* [root@Dahlia bin]$ java -Djava.net.preferIPv4Stack=true -jar SignatureTool.jar client-RBB-1234567890.csi [root@Dahlia bin]$ java -Djava.net.preferIPv4Stack=true -jar SignatureTool.jar client-RCR-1234567890.csi [root@Dahlia bin]$ java -Djava.net.preferIPv4Stack=true -jar SignatureTool.jar client-RRT-1234567890.csi
Now, you are ready and you can sign your applications.
[root@Dahlia root]$ cd /opt/RIM/sdk/bin [root@Dahlia bin]$ java -Djava.net.preferIPv4Stack=true -jar SignatureTool.jar
Debug Java application
It’s possible to use your BlackBerry device to debug step by step your Java applicationser. I’m writting a tool to plug JDB client (or other) to the embedded JVM into your mobile phone.
This tool is still in current developpement. Some features can be used and are available in the last Barry releases.
We are going to use the previous HelloWorldDemo sample.
[root@Dahlia helloworlddemo]$ /opt/RIM/tools/build.sh HelloWorldDemo [root@Dahlia helloworlddemo]$ ls build.sh* HelloWorldDemo.cso HelloWorldDemo.jar HelloWorldScreen.class HelloWorldDemo.class HelloWorldDemo.debug HelloWorldDemo.java* img/ HelloWorldDemo.cod HelloWorldDemo.jad HelloWorldDemo.rapc* Makefile
Rapc has generated several files… whom some interresant. The HelloWorldDemo.cod file will be install on our BlackBerry device and the HelloWorldDemo.debug file will be used to debug.
[root@Dahlia helloworlddemo]$ bjavaloader load HelloWorldDemo.cod loading HelloWorldDemo.cod... done.
To be able to debug, we have to run the bjdwp command in the same directory where is the HelloWorldDemo.debug file. If you wish to debug several applications, copy all your “.debug” files in a same directory.
[root@Dahlia helloworlddemo]$ bjdwp localhost 8000
Then, you can use a Java debugger (Eclipse, JDB or others) :
[root@Dahlia root]$ jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8000
The bjdwp tool generates several traces, whom the console message (the “System.out.println” output).