<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    生活,在繼續……
    真正的生活,應該是不斷的向前!
    posts - 11,comments - 75,trackbacks - 0

    首先我們需要建立一個工程目錄,暫且建在D:\test下吧。然后在test下再建立源程序目錄,資源目錄,工具目錄,這些都可以配置文件中指定。然后就是我們的三個批處理文件了。
    注1:批處理文件都以bat為后綴
    注2:很多批處理命令我都沒多做解釋,具體你可以在CMD窗口輸入:命令 /?來查看幫助。如果你不喜歡E文的話,也可以上MS的官方網去看,這是中文的鏈接: http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/552ed70a-208d-48c4-8da8-2e27b530eac7.mspx?mfr=true

    注3:如果你想直接用這個批處理的話,需要progaurd.jar 及kzip,7zip


    ==================env.bat===================================
    REM 此env.bat為環境配置文件,請根據自身環境情況修改

    REM REM表示此行為注釋,既不顯示也不執行
    REM echo[打開或關閉命令回顯功能,或顯示消息。] @表示本行命令不被顯示
    @echo off

    rem **************** environment dir **********
    REM 設置JDK的目錄[注:在等號左右不能有空格],引用變量值時為:%變量名%
    set JDK=D:\j2sdk1.4.2
    REM 設置WTK目錄

    set J2ME_WTK=D:\wtk22
    REM 設置編譯和混淆時需要的LIB包,一般在WTK的lib目錄下,也可用其它包,比如Nokia的,根據機型而定
    rem set J2ME_API=D:\Series_60_MIDP_SDK_2_1_Beta\lib\kmidp20.zip
    set J2ME_API=%J2ME_WTK%\lib\cldcapi10.jar;%TOOL_DIR%\lib\midpapi20.jar


    rem ******** work dir *********
    REM 設置工作目錄,%CD%表示當前目錄
    set PROJ_DIR=%cd%
    REM src為源程序目錄
    set SCR_DIR=%PROJ_DIR%\src
    REM res為資源目錄
    set RES_DIR=%PROJ_DIR%\res
    REM  #release為打包結果目錄
    set RELEASE_DIR=%PROJ_DIR%\#release

    rem ****** tools dir *********
    REM 設置工具目錄
    set TOOL_DIR=%PROJ_DIR%\tools

    echo on
    ========================================================
    ====================config.bat ========================
    REM 配置文件,設置項目屬性
    @echo off
    REM 項目名稱,既你的jad/Jar包顯示的名稱
    set PROJ_NAME=TestGame
    REM 游戲名稱,顯示在jad的屬性欄中,此兩名稱可以想同
    set GAME_NAME=Test Game

    REM 設置機型
    set PHONE=Triplets
    REM 語言
    set LANG=%1
    REM 這兒用到%1,在批處理的調用中也可以使用參數0~9,0為批處理本身。1~9為參數,用空格隔開。
    REM 在批處理中通過%1 ~ %9來引用,如果沒有參數則設置為EN
    if "%1" == "" set LANG=EN
    REM 設置版本號
    set VER1=0
    set VER2=0
    set VER3=1
    set VERSION=%VER1%.%VER2%.%VER3%
    set PROJ_FULL_NAME=%PROJ_NAME%_%PHONE%
    REM 設置Jad/Jar的包名
    set ARCHIVE_NAME=%PROJ_FULL_NAME%_%LANG%_%VERSION%
    REM 設置主類名稱,在創建Jad和混淆時需要用到
    set MAIN_CLASS=cMIDlet
    set MANIFEST_NAME=Test Game
    REM Jad中其它選項
    set PROJ_DESCRIPTION=It's a test project!!!
    set VENDOR=Sun Co.
    set CLDC=CLDC-1.0
    set MIDP=MIDP-2.0

    REM 設置是否使用混淆和是否使用壓縮,這兒我用的kzip
    set OBFUSCATE=true
    set USE_KZIP=true
    echo on
    ==================================================================
    ======================build.bat==================
    @echo off

    REM 調用配置文件
    call env.bat
    call config.bat %1


    REM 在我們每次build時,可以查看下是否正確
    Echo %PROJ_FULL_NAME%
    Echo lang-%LANG%
    Echo %VERSION%

    rem ***************************
    REM 我們需要建立一個臨時的目錄來保存預處理后(可編譯的)的代碼,如果沒有使用到預處理則可以省去此目錄
    REM _make為我們Build過程中的臨時目錄,Build完成后刪除,這樣可保證每次都是build的最新文件
    REM 批處理中也可以使用條件判斷和括弧,[注:括弧和if/else 一定要在一行上]
    REM 判斷一個文件或是目錄是否存在可以使用if exist或是if not exist
    rem ***************************
    if not exist tempsrc (
     mkdir tempsrc
    ) else (
     del /S/Q tempsrc\*.* 
    )
    if exist _make (
     rd _make /Q /S
    )
    if not exist %RELEASE_DIR% (
     md %RELEASE_DIR%
    )
    REM 進入到_make目錄
    mkdir _make
    cd _make

    rem ******************************
    REM 這兒我們使用Echo命令來創建Jad和Manifest文件。同樣是為了每次的jad和MF都是最新版本的
    REM 用>和>>流重定向符,使Echo輸出到文件而非默認的顯示器,>為新建,>>為追加
    rem ******************************
    ECHO Manifest-Version: 1.0>                               MANIFEST.MF
    ECHO Created-By: 1.4.1_02 (Sun Microsystems Inc.)>>       MANIFEST.MF
    ECHO MicroEdition-Configuration: %CLDC%>>                 MANIFEST.MF
    ECHO MIDlet-Name: %GAME_NAME%>>                           MANIFEST.MF
    ECHO MIDlet-Icon: %ICON%>>                                MANIFEST.MF
    ECHO MIDlet-Vendor: %VENDOR%>>                            MANIFEST.MF
    ECHO MIDlet-1: %GAME_NAME%, %ICON%, %MAIN_CLASS%>>     MANIFEST.MF
    ECHO MIDlet-Version: %VERSION%>>                          MANIFEST.MF
    ECHO MicroEdition-Profile: %MIDP%>>                       MANIFEST.MF

    rem ******* Jad  **************
    ECHO MIDlet-Name: %GAME_NAME%>                             %ARCHIVE_NAME%.jad
    ECHO MIDlet-Icon: %ICON%>>                                %ARCHIVE_NAME%.jad
    ECHO MIDlet-Vendor: %VENDOR%>>                            %ARCHIVE_NAME%.jad
    ECHO MIDlet-1: %GAME_NAME%, %ICON%, %MAIN_CLASS%>>     %ARCHIVE_NAME%.jad
    ECHO MIDlet-Version: %VERSION%>>                          %ARCHIVE_NAME%.jad
    ECHO MIDlet-Jar-URL: %ARCHIVE_NAME%.jar>>                 %ARCHIVE_NAME%.jad
    REM 對jar-size這項目,可以使用工具在jar生成后來修改,如果沒工具的話,只能手動了^_^
    ECHO MIDlet-Jar-Size: >>                                  %ARCHIVE_NAME%.jad
     
    rem ******************************
    REM 混淆的選項配置,這兒我只列出了最基本的選項,如果還有其它需求,請查閱:http://proguard.sourceforge.net/
    rem ******************************
    REM 混淆時所要需要的API包
    echo -libraryjars %J2ME_API%     > %PROJ_FULL_NAME%.pro
    REM 要被混淆的Jar包
    echo -injars _%PROJ_FULL_NAME%.jar   >> %PROJ_FULL_NAME%.pro
    REM 混淆時輸出文件
    echo -outjar  %PROJ_FULL_NAME%.jar   >> %PROJ_FULL_NAME%.pro
    REM 讓我們的主類名字保留,不然程序找不到入口了
    echo -keep public class %MAIN_CLASS%   >> %PROJ_FULL_NAME%.pro

    rem ******************************
    ECHO Compiling...
    rem ******************************
    md classes
    REM 編譯源程序到classes目錄
    "%JDK%\bin\javac"  -bootclasspath "%J2ME_API%" -classpath "%J2ME_API%" -g:none -d classes %SCR_DIR%\*.java

    rem *****************************
    ECHO Preverify....
    rem *****************************
    REM 校驗[可不需要此步,一般來說要需要對包校驗一次既可,也可對編譯文件再多校驗一次:) ]
    "%J2ME_WTK%\bin\preverify.exe" -classpath "%J2ME_API%"; -d output classes
    REM 如果校驗成功或生成一個目錄,由-d選項指定,如果沒有-d選項,則默認為output
    if not exist output (
    REM 在批處理中可以使用GOTO語言,有時如果需要較復雜的循環的話,還是比較有用的
     echo *** Error: stop building process by preverify.
     pause
     goto :end
    )

    rem ***  copy resources *************
    REM 把我們資源目錄下的所有東西COPY到output中,進行打包
    copy %RES_DIR%\*.* output

     

    rem ******************************
    ECHO JAR....
    rem ******************************
    REM 打包;把tempsrc目錄下所有文件,MANIFEST.MF為manifest文件(由m選項指定)打成一個jar包。具體查閱jar.exe /?
    "%JDK%\bin\jar.exe" cvfm  _%PROJ_FULL_NAME%.jar MANIFEST.MF -C output .
    if not exist _%PROJ_FULL_NAME%.jar (
     echo *** Error: stop building process by jar.
     pause
     goto :end
    )

    rem ******************************
    ECHO Obfuscate.....
    rem ******************************
    REM 混淆;這兒我們也可把前面的混淆選項依次列在后面,如果怕太長,可以用文件,記得加@
    REM 如果不混淆則直接把jar包改名既可
    if "%OBFUSCATE%"=="false" (
     copy _%PROJ_FULL_NAME%.jar %PROJ_FULL_NAME%.jar > nul
    ) else (
     "%JDK%\bin\java" -jar %TOOL_DIR%\proguard.jar @%PROJ_FULL_NAME%.pro
    )

    if not exist %PROJ_FULL_NAME%.jar (
     echo *** Error: stop building process by Obfuscate.
     pause
     goto :end
    )
    rem *****************************
    Echo Preverify...
    rem *****************************
    REM 再次較驗,輸出到tempJar中
    "%J2ME_WTK%\bin\preverify.exe" -classpath "%J2ME_API%" -d tempJar %PROJ_FULL_NAME%.jar

    if not exist tempJar\%PROJ_FULL_NAME%.jar (
     echo *** Error: stop building process.
     goto :end
    )

    rem ******************************
    rem Compress...
    rem ******************************
    REM 進入tempJar目錄,進行壓縮
    REM 如果不壓縮直接改名
    cd tempJar
    if "%USE_KZIP%"=="true" (
     echo **** compressing with Kzip ****
    REM 用7za.exe解壓,也可以用jar解壓 
     "%TOOL_DIR%\7za.exe" x %PROJ_FULL_NAME%.jar -ozip > NUL
     del %PROJ_FULL_NAME%.jar >NUL
     cd zip
    REM 使用kzip壓縮&打包 
     "%TOOL_DIR%\kzip.exe" /r ..\..\%ARCHIVE_NAME%.jar *.* > NUL
     cd ..
     rd /s /q zip > NUL
    ) else (
     copy %PROJ_FULL_NAME%.jar ..\%ARCHIVE_NAME%.jar
    )
    REM 返回到_make目錄
    cd ..
    REM 既得到我們所需要的Jad和Jar包了,COPY到release目錄去
    copy %ARCHIVE_NAME%.ja* %RELEASE_DIR%\%ARCHIVE_NAME%.ja*
    cd ..
    REM 刪除_make臨時文件夾
    rd /q /s _make

    :end
    cd %PROJ_DIR%
    REM 如果出錯,還是需要刪除_make文件夾
    if exist _make rd  /Q /S _make

    Echo on
    =============================================
    REM 包已經打成了,那再讓我們建一個run來跑來看看效果吧
    ================================run===================
    call env.bat
    call config.bat
    echo %RELEASE_DIR%\%ARCHIVE_NAME%.jad

    %J2ME_WTK%\bin\emulator.exe -Xdevice:DefaultColorPhone -cp %J2ME_API% -Xdescriptor:%RELEASE_DIR%\%ARCHIVE_NAME%.jad

     

    posted on 2006-11-16 22:12 生活,在繼續……勿要停! 閱讀(323) 評論(0)  編輯  收藏 所屬分類: 批處理

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 3344永久在线观看视频免费首页| 你是我的城池营垒免费观看完整版| 久久精品视频免费看| 黑人大战亚洲人精品一区| 色www免费视频| 一本久到久久亚洲综合| 男女交性无遮挡免费视频| 亚洲AV成人潮喷综合网| 一区二区三区免费精品视频| 久久久久亚洲AV成人网人人软件| 久久99久久成人免费播放| 亚洲日韩精品无码专区网址 | 亚洲国产精品无码专区影院| 国产午夜无码片免费| 久久精品国产亚洲AV麻豆不卡| 无码成A毛片免费| 亚洲伊人久久大香线蕉影院| 暖暖免费高清日本中文| 猫咪www免费人成网站| 中文字幕精品无码亚洲字| 国产一精品一AV一免费| 亚洲一二成人精品区| 无码永久免费AV网站| 久久精品国产亚洲av瑜伽| 亚洲人成网站在线观看青青| a级毛片在线免费| 亚洲国产成+人+综合| 国产成人在线观看免费网站| 男女一边摸一边做爽的免费视频| 久久国产精品亚洲综合| 欧美三级在线电影免费| 一二三四在线观看免费中文在线观看| 国产精一品亚洲二区在线播放| 一本岛高清v不卡免费一三区| 色欲aⅴ亚洲情无码AV| 国产亚洲成av人片在线观看| 皇色在线视频免费网站| www免费插插视频| 亚洲剧场午夜在线观看| 亚洲国产精品成人一区| 成人黄色免费网站|