[摘要]Antenna 打包 J2ME 程序作者: Jeru很多人喜欢用 ant 来编译打包 Java 应用程序,可以很方便的生成 war 包在 J2EE 容器中运行,我在 sun 的网站上也看到了一篇用 ant 打包 J2me 程序的教程:http://wireless.java.sun.com/mid...
Antenna 打包 J2ME 程序
作者: Jeru
很多人喜欢用 ant 来编译打包 Java 应用程序,可以很方便的生成 war 包在 J2EE 容器中运行,我在 sun 的网站上也看到了一篇
用 ant 打包 J2me 程序的教程:http://wireless.java.sun.com/midp/articles/ant/
测试了一下,还不错,但美中不足的是,需要自己事先写好 manifest.mf 和 jad 文件,于是心有不甘,继续在 google 上搜索,
终于找了一个很强大的 ant 扩充包,专门打包 J2me 程序,很实用:http://antenna.sourceforge.net/
一次性可以自动编译,预编译,生成 jar,jad,prc(palm 的运行程序),甚至包括搅乱代码.你所需要做的只是改少少build.xml里的参数.
下面以 UIDemo 为例子,给大家 share 一下打包的过程.(本文适用于有ant使用经验的用户)
首先,假定你已经使用过ant,ant_home环境变量已经设置好了,把上述网站下载的antenna-bin.jar加入classpath
我在D:\My Folder\projects\j2me\下建立了一个 UIDemo 目录,把J2MEWTK\apps\UIDemo下的 res,src 两个目录 copy 到这里来,
同级目录下建立一个 build.xml 文件,build.xml 内容如下,只有做出了中文注释的几个地方需要修改:
<?xml version="1.0"?>
<project name="UIdemo" default="build" basedir=".">
<!-- Define the Wireless Toolkit home directory. Needed by the tasks. -->
<!-- 设置 J2MEWTK 路径. -->
<property name="wtk.home" value="c:\j2mewtk"/>
<!-- Define some additional properties for this project. Not required. -->
<!-- 设置 midlet 名称和根路径. -->
<property name="midlet.name" value="UIDemo"/>
<property name="midlet.home" value="."/>
<!-- Define the tasks. -->
<taskdef name="wtkjad" classname="de.pleumann.antenna.WtkJad"/>
<taskdef name="wtkbuild" classname="de.pleumann.antenna.WtkBuild"/>
<taskdef name="wtkpackage" classname="de.pleumann.antenna.WtkPackage"/>
<taskdef name="wtkmakeprc" classname="de.pleumann.antenna.WtkMakePrc"/>
<taskdef name="wtkrun" classname="de.pleumann.antenna.WtkRun"/>
<taskdef name="wtkpreverify" classname="de.pleumann.antenna.WtkPreverify"/>
<taskdef name="wtkobfuscate" classname="de.pleumann.antenna.WtkObfuscate"/>
<target name="clean">
<delete failonerror="false" dir="classes"/>
<delete failonerror="false">
<fileset dir=".">
<exclude name="build.xml"/>
</fileset>
</delete>
</target>
<target name="build">
<!-- Creat a new jad -->
<!-- 指定midlet的类和图标. -->
<wtkjad jadfile="${midlet.name}.jad"
name="Sun Samples - Demos"
vendor="Sun Microsystems"
version="1.0.3">
<midlet name="UIDemo"
icon="/res/midp/uidemo/icon.png"
class="midp.uidemo.UIDemo"/>
</wtkjad>
<mkdir dir="classes"/>
<!-- Compile everything, but don't preverify (yet). -->
<wtkbuild srcdir="${midlet.home}/src"
destdir="classes"
preverify="false"/>
<!-- Package everything. Most of the necessary information is
contained in the JAD file. Also preverify the result this
time. To obfuscate everything, set the corresponding
parameter to "true" (requires RetroGuard or ProGuard). The
version parameter increments the MIDlet-Version by one. -->
<!-- 设置是否需要搅乱,是否要预编译,是否自动识别版本 -->
<wtkpackage jarfile="${midlet.name}.jar"
jadfile="${midlet.name}.jad"
obfuscate="false"
preverify="true"
autoversion="true">
<!-- Package our newly compiled classes and the
resources from the WTK's demo application. -->
<fileset dir="classes"/>
<fileset dir="${midlet.home}/res"/>
</wtkpackage>
<!-- Convert the JAR file into a MIDP for PalmOS PRC file. -->
<wtkmakeprc jadfile="${midlet.name}.jad"
prcfile="${midlet.name}.prc"/>
<!-- Start the MIDlet suite -->
<wtkrun jadfile="${midlet.name}.jad" device="DefaultColorPhone"/>
</target>
</project>
最后在命令行下运行ant,一切就是这么简单
最后附带说一下ant的安装,也非常简单,下载回来后设置环境变量ANT_HOME到安装目录,将%ANT_HOME%\bin加入path就可以了
……