2007年10月24日

俺用的是JDK1.5,WTK2.5.2,apache-ant-1.7.0,retroguard-v2.3.1
俺的目录结构是这样的

--下面是build.xml的内容
<?xml version="1.0" encoding="GB2312"?>
<project name="第一个MIDP程序" default="all" basedir=".">
  <!-- 引入位于build.properties之中的常用属性-->
  <property file="build.properties"/>
 
  <target name="prepare" description="准备工作">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${build.dir.classes}"/>
    <mkdir dir="${build.dir.obfused}"/>
    <mkdir dir="${build.dir.preverified}"/>
    <mkdir dir="${build.dir.bin}"/>
  </target>
 
  <target name="cleandir" description="清除目录">
    <delete dir="${build.dir}"/>
  </target>
 
  <target name="compile" description="编译源代码" depends="prepare">
    <javac debug="on"  bootclasspath="${midp.api}" classpath="${midp.api};."
      srcdir="${src.dir}" destdir="${build.dir.classes}"/>
  </target>

  <target name="beforeobfuse" description="混淆前先打包成JAR" depends="compile">
    <jar basedir="${build.dir.classes}" jarfile="${build.dir.bin.jarunobfus}"/>
  </target>

  <target name="obfuscate" description="使用混淆器" depends="beforeobfuse">
    <java fork="yes" classname="RetroGuard" classpath="${obfuscator.lib};${midp.api};.">
      <arg line="${build.dir.bin.jarunobfus}"/>
      <arg line="${build.dir.bin.jarobfused}"/>
      <arg line="${obfuscator.script}"/>
    </java>
  </target>

  <target name="afterobfuse" description="混淆后再把JAR解包" depends="obfuscate">
    <unzip src="${build.dir.bin.jarobfused}" dest="${build.dir.obfused}"/>
    <delete dir="${build.dir.obfused}/META-INF"/>
  </target>

  <target name="preverify" description="预先审核" depends="afterobfuse">
    <exec executable="${midp.home}/bin/preverify1.1">
      <arg line="-classpath ${midp.api};."/>
      <arg line="-d ${build.dir.preverified}"/>
      <arg line="${build.dir.obfused}"/>
    </exec>
  </target>

  <target name="package" description="包装成JAR与JAD" depends="preverify">
    <jar basedir="${build.dir.preverified}" jarfile="${build.dir.bin.jar}" manifest="MANIFEST.MF">
      <fileset dir="${res.dir}"/>
    </jar>
    <copy file="${jad}" tofile="${build.dir.bin}/${jad}"/>
  </target>
 
  <target name="run" description="使用模拟器执行">
    <exec executable="${midp.home}/bin/emulator">
      <arg line="-Xdescriptor:${build.dir.bin}/${jad}"/>
    </exec>
  </target>

  <target name="all" description="完成所有步骤" depends="cleandir,package,run"/>
   
</project>

--下面是build.properties的内容
#此文件用来设定一些常用属性

#项目名称
name=MyFirst

#JAD与JAR的文件名
jar=${name}.jar
jad=${name}.jad

#源文件所在路径
src.dir=src

#资源文件所在路径
res.dir=res

#建构产物放置位置
build.dir=build

#编译后类文件的放置位置
build.dir.classes=${build.dir}/classes
#未经过混淆的JAR文件名
build.dir.bin.jarunobfus=${build.dir.bin}/${name}-unobfus.jar
#经过混淆的JAR文件名
build.dir.bin.jarobfused=${build.dir.bin}/${name}-obfused.jar
#混淆后类的放置位置
build.dir.obfused=${build.dir}/obfused

#经过预先审核之后的类文件放置位置
build.dir.preverified=${build.dir}/preverified

#JAD与JAR的放置位置
build.dir.bin=${build.dir}/bin
#最终的JAR文件名
build.dir.bin.jar=${build.dir.bin}/${jar}

#J2ME Wireless Toolkit所在路径,这个路径前的/耽误我很长时间
midp.home=D:/WTK252

#MIDP程序库所在路径
midp.api=${midp.home}/lib/midpapi21.jar;${midp.home}/lib/cldcapi11.jar

#空白MIDP程序库所在路径
midp.emptyapi=${midp.home}/wtklib/kenv.zip

#混淆器与控制文件
obfuscator.lib=retroguard.jar
obfuscator.script=script.rgs


--下面是script.rgs文件内容
.class my/DirstMIDlet

--下面是MANIFEST.MF文件内容
MIDlet-Name: HelloWorld
MIDlet-Version: 1.0.0
MIDlet-Vendor: Sun Microsystems,Inc.
MIDlet-Description: Sample Hello World MIDlet
MIDlet-Info-URL: http://java.sun.com/j2me/
MIDlet-1: HelloWorld,, my.FirstMIDlet
MicroEdition-Profile: MIDP-2.1
MicroEdition-Configuration: CLDC-1.1

--下面是MyFirst.jad文件内容
MIDlet-Name: HelloWorld
MIDlet-Version: 1.0.0
MIDlet-Vendor: Sun Microsystems,Inc.
MIDlet-Description: Sample Hello World MIDlet
MIDlet-Info-URL: http://java.sun.com/j2me/
MIDlet-Jar-URL: MyFirst.jar
MIDlet-Jar-Size: 1020
MIDlet-1: HelloWorld,, my.FirstMIDlet
MicroEdition-Profile: MIDP-2.1
MicroEdition-Configuration: CLDC-1.1

posted @ 2007-10-24 10:15 御风而行 阅读(581) | 评论 (0)编辑 收藏