Channels ▼

BlackBerry Development: Using Apache Ant

Research in Motion's (RIM) latest generation of Java-based BlackBerry handsets supports the Mobile Information Device Profile (MIDP) 1.0 as well as an extensive set of BlackBerry-specific APIs, a CLDC-based programming model, a proprietary development environment, unique application deployment details, and a proprietary runtime/device environment.

To help developers write BlackBerry applications, RIM offers the Java Development Environment (JDE), a BlackBerry-specific Integrated Development Environment (IDE) that supports various BlackBerry simulators for their various Java handsets. The JDE provides the typical features found on IDEs such as support for workspaces, projects, and the ability to build and debug BlackBerry applications all within the JDE.

However, you may need to build your application outside of the JDE, either because you prefer to work in a different IDE or because your BlackBerry application is just one part of a much larger system that needs to be built together. The JDE can generate a Makefile, but many developers prefer the cross-platform and extensible Apache Ant build tool.

In this article I will show how to use Ant to build BlackBerry applications. You can use this script to build from the command-line or your favorite IDE, and to integrate your application into your overall build process. I will begin with a brief introduction to the JDE's build capabilities, followed by how to use Apache Ant to build BlackBerry applications.

Using the JDE to Build Your BlackBerry Application

As previously mentioned, the JDE provides an integrated environment for writing, building and debugging your BlackBerry applications. The JDE can also generate a Makefile that you can use to build your application from the command line and/or integrate your application build into a Make-based development process. Figure 1 shows the "Generate Makefile and Resources" item on the Build menu.

Figure 1. - The JDE Build Menu

The result is a Makefile similar to the one in Listing 1. If you look at this Makefile carefully, you will note a line similar to the following:
@C:\BlackBerryJDE3.7\bin\rapc.exe -quiet import=C:\BlackBerryJDE3.7\lib\net_rim_api.jar codename=MyClientApp MyClientApp.rapc $(MyProject_sources)

This line shows how to invoke the RAPC compiler that is used by the JDE to build the application's executable .cod file.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.