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 御風而行 閱讀(588) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 泗洪县| 台南县| 浦北县| 平潭县| 绥滨县| 海兴县| 恭城| 五莲县| 塘沽区| 龙口市| 虞城县| 白朗县| 普兰店市| 睢宁县| 鄱阳县| 清流县| 丹阳市| 阿尔山市| 萨嘎县| 罗江县| 松溪县| 宁海县| 宜兰县| 耒阳市| 郸城县| 高邮市| 大埔区| 惠水县| 牙克石市| 阿合奇县| 京山县| 若羌县| 无为县| 广汉市| 千阳县| 沙河市| 承德市| 涞水县| 潜山县| 松原市| 安丘市|