在Eclipse中使用Ant来自动编译J2me程序

来源:互联网 发布:mac ui设计软件 编辑:程序博客网 时间:2024/05/16 11:44
导读:
 
  在Eclipse中使用Ant来自动编译J2me程序
  作者:佚名 文章来源:Matrix 点击数: 更新时间:2006-10-今天是比较郁闷的一天,一不小心把eclipse的一个j2me项目中的verified/classes目录中的东东删除了。之后才发现eclipse是如何惩罚我的:它再也不会在这个目录中生成class了,呵呵,罢工了我的工。

为什么eclipse不是想netbeans那样用ant来编译、运行j2me项目那??好在本人目前正在研究ant,呵呵,小试牛刀地用了2小时做了个比较完善的ant脚本可以来弥补一下eclipse对我心情的打击了。

下面我把这个脚本和源程序(含demo)贡献出来,大家一起研究探讨。
ant脚本:automake.xml

程序名称:j2me程序的自动编译脚本
Version:1.0.0
作者:kevin
mail:greatcleverpig@126.cm

完成以下功能:
1.建立基本目录框架
2.编译src目录中的源文件
3.调用preverify.exe对类文件进行验证
4.将类文件生成jar包
5.调用proguard类对jar包进行混淆,并解压缩
6.将经过混淆、解压缩后的类、资源文件生成jar包,复制src目录中的jad文件,完成程序部署
7.调用emulator运行程序

用法:
只需要修改一下CONF.properties文件中的属性:
1.midp.lib.dir-WTK的lib目录路径(位于CONF.properties文件中)
2.midp.lib.path-根据需要扩展使用的jar(位于CONF.properties文件中)
3.programName-生成jar/jad文件的名字
在本脚本中可修改的地方:
preverify.exe和emulator.exe的具体参数可以根据需要修改。

注意:
1.src目录中需要有MANIFEST.MF和${programName}.jar文件,这些将用在生成jar和部署程序时.
2.res目录中放置使用的png图片文件.

参考资料:
MIDlet Packaging With J2ME http://www.onjava.com/pub/a/onjava/2001/04/26/midlet.html
Proguard Manual http://proguard.sourceforge.net/
Ant Manual http://ant.apache.org

附加类库:
混淆器类Proguard-位于lib中。

文件说明:
CONF.properties:配置属性文件
GEN.properties:生成MANIFEST.MF和${programName}.jad文件的替换属性文件
JAD.tmp:生成jad文件用到的替换模板文件
MANIFEST.tmp:生成MANIFEST.MF文件用到的替换模板文件






        
        
        
        
        
        
                
        
        

        
        
        
        
        
        
        
        
        
                
        
                
                
                
                
                
                
                
                
                
                
                
                
        

        
        
                
                
                        
                        
                                        
                        

                

        

                                
        
                
                
                        
                        
                        
                

        

        
        
                
                
                                                token="@PROGRAMNAME@"
                                value="${programName}"
                />
                
                                        tofile="${src.dir}/MANIFEST.MF">
                        
                                
                        

                

        

                        
        
                
                                        jarfile="${package.dir}/${programName}-noObfused.jar"
                        manifest="${src.dir}/MANIFEST.MF"
                >
                        
                

        

        
        
                
                
                        
                        
                        
                        
                        
                        
                        
                        
                

                                        dest="${package.extract.dir}"
                />
        

        
        
                
                
                        
                        
                        
                

                
                        
                

        

        
        
                
                                        jarfile="${deploy.dir}/${programName}.jar"
                        manifest="${src.dir}/MANIFEST.MF"
                >
                        
                

        

        
        
                
                
                
                                        token="@JARSIZE@"
                        value="${jarsize}"
                />
                                        token="@PROGRAMNAME@"
                        value="${programName}"
                />
                
                        
                                
                        

                

        

        
        
                
                                        token="MIDLET_NAME=${programName}"
                        value="MIDLET_NAME=@PROGRAMNAME@"
                />
                                        token="MIDLET_JAR_URL=${programName}.jar"
                        value="MIDLET_JAR_URL=@PROGRAMNAME@.jar"
                />
                                        token="MIDLET_JAR_SIZE=${jarsize}"
                        value="MIDLET_JAR_SIZE=@JARSIZE@"
                />
        


        
                
                
                        
                        
                

        

                
        



配置属性文件:CONF.properties

wtk.home.dir=E://WTK22
programName=j2mePractice
midp.lib.dir=${wtk.home.dir}//lib
midp.lib.path=${midp.lib.dir}//cldcapi11.jar;${midp.lib.dir}//midpapi20.jar


生成属性文件:GEN.properties

MIDLET_NAME=@PROGRAMNAME@
MIDLET_VERSION=1.0.0
MIDLET_VENDOR=kevin
MIDLET_01_NAME=MainMidlet
MIDLET_01_LOGO=
MIDLET_01_CLASS=com.gamecollege.work.menu.MainMidlet
MIDLET_JAR_URL=@PROGRAMNAME@.jar
MIDLET_JAR_SIZE=@JARSIZE@
ME_PROFILE=MIDP-2.0
ME_CONF=CLDC-1.1


Manifest模板文件:MANIFEST.tmp

MIDlet-Name: @MIDLET_NAME@
MIDlet-Version: @MIDLET_VERSION@
MIDlet-Vendor: @MIDLET_VENDOR@
MIDlet-1: @MIDLET_01_NAME@,@MIDLET_01_LOGO@,@MIDLET_01_CLASS@
MicroEdition-Profile: @ME_PROFILE@
MicroEdition-Configuration: @ME_CONF@


JAD模板文件:JAD.tmp

MIDlet-Name: @MIDLET_NAME@
MIDlet-Version: @MIDLET_VERSION@
MIDlet-Vendor: @MIDLET_VENDOR@
MIDlet-Jar-URL: @MIDLET_JAR_URL@
MIDlet-Jar-Size: @MIDLET_JAR_SIZE@
MIDlet-1: @MIDLET_01_NAME@,@MIDLET_01_LOGO@,@MIDLET_01_CLASS@
MicroEdition-Profile: @ME_PROFILE@
MicroEdition-Configuration: @ME_CONF@


源程序下载:



本文转自
http://www.j2medev.com/Article/Class1/Class11/200610/3416.html