Skip to main content

Create a simple J2ME application for Blackberry with WebSphere Studio Device Developer

Kulvir Singh Bhogal (kbhogal@us.ibm.com), Senior IT Specialist, IBM
Kulvir Singh Bhogal works as an IBM Software Services for WebSphere consultant, devising and implementing J2EE solutions at customer sites across the U.S. You can reach Kulvir at kbhogal@us.ibm.com.
Michael Masterson (masterson@us.ibm.com), Staff Software Engineer, IBM
Michael Masterson works as a Software Engineer within the Lotus Workplace and Collaboration group, focused on delivering mobile software that drives true business value. You may reach Michael at masterson@us.ibm.com

Summary:  Learn how to build, test, and deploy a simple Java™ 2 Micro Edition (J2ME) application to Blackberry devices using IBM® WebSphere® Studio Device Developer.

Date:  15 Mar 2006
Level:  Introductory
Activity:  865 views

Introduction

Having employees constantly connected to one's enterprise is vital to many companies. This is one of the reasons Research in Motion's BlackBerry has mustered a massive following (over three million users at the time of this article's writing) in recent years. BlackBerry addiction has become pandemic. In this article, you'll learn how to build, test, and deploy applications to Blackberry devices using WebSphere Studio Developer.

WebSphere Studio Device Developer (hereafter called Device Developer) provides you with an integrated development environment (IDE) in which you can build, test, and deploy J2ME applications.

For learning purposes, the sample MIDlet application you'll create following the steps in this article is pretty simple: it takes input text from a user, transposes the text, then displays the transposed text to the user. For example, if a user enters the text IBM, the transposed, or mirrored, text MBI is returned.


Prerequisites

The BlackBerry Java development environment (JDE), which runs only on Windows® operating systems, consists of an IDE and BlackBerry emulator tools that let you see exactly how the J2ME application you build will work on a BlackBerry device. In this article, we'll use the Device Developer IDE rather than the IDE that ships with the BlackBerry JDE. However, you still need to download and install the BlackBerry JDE in order to use the BlackBerry emulation environment. This way, you can see how your J2ME application will act on the actual BlackBerry device. See Resources for information on downloading the BlackBerry JDE.

You also need to have the following software installed:

  • Java 2 SDK, Standard Edition V5.0
  • WebSphere Studio Device Developer. Device Developer is part of the IBM WorkSpace Client Technology, Micro Edition 5.7 Integrated Package. Check out Resources for information on downloading a trial version of Device Developer.

You should have a basic knowledge of Eclipse and the BlackBerry JDE.


Create the application

First, we need to create our MIDlet application using Device Developer. We'll put our MIDlet in a MIDlet suite.

  1. Create a new MIDlet Suite project, then click Next, as shown in Figure 1:

    Figure 1. Create MIDlet Suite project
    Figure 1. Create MIDlet Suite project

  2. On the MIDlet Suite Creation screen, do the following:
    1. Enter MirrorMidlet for the MIDlet name.
    2. In the Midlet Suite Name field, type MirrorMidletSuite.
    3. Select 2.0 for the MIDP Version.
    4. Enter Mirror Midlet
    5. Enter a MIDlet class Package of com.ibm.test and a Name of MirrorMidlet, then click Next.

      Figure 2. Create MIDlet Suite
      Figure 2. Create MIDlet Suite

  3. Select the default J9 JVM ive-2.2, and click Finish.

    Figure 3. Select JVM
    Figure 3. Select JVM

  4. The MIDP Visual Editor is launched. Since we won't be using the visual editor in this article, you can go ahead and close it.
  5. At this point our MIDlet is pretty barebones. We need to edit it to make it perform the transposition function described earlier. To do this, right-click MirrorMidlet.java and select Open with => Java Editor.
  6. Replace the existing class definition with the following:
    public class MirrorMidlet extends MIDlet implements CommandListener {
    	protected Form form;
    	protected TextField input = new TextField("String:", null, 128,
    					TextField.ANY);
    	Command commandConvert = new Command("Convert", Command.OK, 1); 
    			


  7. Add the following to protected void startApp():
    // Init form
    form.append(input);
    form.addCommand(commandConvert);
    form.setCommandListener(this);
    			


  8. Add the following method:
    public void commandAction(Command aCommand, Displayable aDisplayable) {
    	if (aCommand == commandConvert){
    		char aChar;
    		int size = input.size();
    		char[] charArray = new char[size];
    		
    		// determine inverse
    		input.getChars(charArray);
    		for (int i = 0; i < size / 2; i++){
    			aChar = charArray[i];
    			charArray[i] = charArray[size-1-i];
    			charArray[size-1-i] = aChar;
    		}
    			
    		// update screen
    		input.setChars(charArray, 0, size);
    	}	
    } 
    			


    The code above implements the transposition function. The core of the transposition logic lies in the if clause of the commandAction method, which simply transposes the letters of an input character array using a for loop.
  9. Now build the project by right-clicking on the MirrorMidlet project and selecting Build Project.

Create the Java Application Descriptor (JAD) and JAR files

Now that the code is complete, you need to create a JAR file and associated JAD file for deploying to the J2ME device. To do this, you need to set up a build by completing the following steps:

  1. Right-click on the MirrorMidlet project and select Device Developer Builds.
  2. Select Add to create a new build.
  3. Click Next on the Create generic JAR window.

    Figure 4. Create generic JAR
    Figure 4. Create generic JAR

  4. Select Generic JAR in the Create new build window, and click Finish.

    Figure 5. Create new build
    Figure 5. Create new build

  5. In the Configure Builds window, select Run to build the JAD and JAR files, which are located in the generic/ folder.

    Figure 6. Configure build
    Figure 6. Configure build

  6. Optional: If you have any images or other resources associated with your project, complete the following steps to include them:
    1. Edit generic/MirrorMidletSuite.jexlinkOptions, and select the Source tab.
    2. Add the location of the folder containing the additional resources using -cp.
    3. To include the resources specify includeResource "*.xxx" (for example, *.png), as shown below.

      Figure 7. Add images
      Figure 7. Add images


Debug the application

Before deploying the application to your BlackBerry, you can use the Device Developer IDE's built-in debugger to debug your J2ME application by completing the following steps:

  1. Set a breakpoint within the project, as shown:

    Figure 8. Set breakpoint
    Figure 8. Set breakpoint

  2. Select Run => Debug, then select MirrorMidlet Suite, then New to create a new debug profile.
  3. Select the default JRE of ive-2.2 and MirrorMidletSuite.jad.
  4. Click Debug to begin debugging your MIDlet.

    Figure 9. Debug
    Figure 9. Debug


Deploy the application

You now have a JAR file that is ready to be deployed to a J2ME device. Unfortunately, we can't just deploy this JAR file to a BlackBerry. First, we have to convert the JAR file to the BlackBerry .cod format. To do this, complete the steps below:

  1. Create a jartocod.bat file to use with the Blackberry JDE, as shown:
    @ECHO "Syntax: jartocod.bat JAD_NAME JAR_NAME OUTPUT_NAME"  
    
    :RUN
    @"C:\Program Files\Research In Motion\BlackBerry JDE 4.1.0\bin\rapc"
    import="C:\Program Files\Research In Motion\BlackBerry JDE
    4.1.0\lib\net_rim_api.jar" codename=%3 -midlet jad=%1 %2
    				

  2. Copy the JAD and JAR files you created earlier from the generic/ folder to the location of the jartocod.bat.
  3. Type the command: jartocod.bat MirrorMidletSuite.jad MirrorMidletSuite.jar MirrorMidlet.

Now you have a .cod file that the BlackBerry can understand.

Deploy to the BlackBerry simulator

  1. Launch the BlackBerry Device Simulator by selecting Start => Research In Motion => BlackBerry JDE => Device Simulator.
  2. Once the simulator is loaded, install the .cod file by selecting File => Load Java Program.

    Figure 10. Install .cod file
    Figure 10. Install .cod file

  3. Navigate to the directory containing your .cod file and open the file.

    Figure 11. Open .cod file
    Figure 10. Open .cod file

  4. Locate the icon on the BlackBerry Simulator desktop and launch it. Hint: The up and down arrows function as Select and Back emulated BlackBerry buttons.

    Figure 12. Launch MirrorMidlet
    Figure 12. Launch MirrorMidlet

  5. Select the Transpose function from the context menu to see the Mirror MIDlet work on the BlackBerry simulator.

    Figure 13. Select Transpose
    Figure 13. Select Transpose

Deploy to a real BlackBerry

Deploying your .cod file to a real BlackBerry device is a pretty simple operation:

  1. First, create an installcod.bat file to use with the Blackberry JDE, as shown below:
    @ECHO "Syntax: installcod.bat COD_NAME.cod"  
    
    :RUN
    @"C:\Program Files\Research In Motion\BlackBerry JDE 4.1.0\bin\javaloader" -u load %1
    				


  2. Next, plug your BlackBerry device into your computer using a USB cable and execute the installcod.bat batch file to install the MIDlet onto the BlackBerry device.

Conclusion

In this article, you learned how to use the power of IBM WebSphere Device Developer to build and test J2ME applications and then deploy them to the BlackBerry platform. The J2ME application we created in this article didn't need to interact across the network to perform its function. In our next article, we'll show you how to create a more complex BlackBerry application using Device Developer that involves invoking of a Web service on WebSphere Application Server.


Resources

Learn

Get products and technologies

About the authors

Kulvir Singh Bhogal

Kulvir Singh Bhogal works as an IBM Software Services for WebSphere consultant, devising and implementing J2EE solutions at customer sites across the U.S. You can reach Kulvir at kbhogal@us.ibm.com.

Michael Masterson

Michael Masterson works as a Software Engineer within the Lotus Workplace and Collaboration group, focused on delivering mobile software that drives true business value. You may reach Michael at masterson@us.ibm.com

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere
ArticleID=105759
ArticleTitle=Create a simple J2ME application for Blackberry with WebSphere Studio Device Developer
publish-date=03152006
author1-email=kbhogal@us.ibm.com
author1-email-cc=
author2-email=masterson@us.ibm.com
author2-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers