windows下打包java程式為帶jre的可執行檔案

kfhgajofwensjdf發表於2010-11-09

  windows下打包java程式為帶jre的可執行檔案 
   在這個製作過程中主要利用了Borland不公開的使用技巧,就是能夠通過JBuilder來製作exe檔案來啟動Java檔案。 (在網上可以查到具體的文章,可以見---JBuilder9製作EXE檔案--)

    JBuilder並不支援本地編譯機制。但是有一個隱藏的技巧可以讓你從可執行檔案來啟動Java 程式,可以出現或者不出現console視窗。需要JBuilder的bin目錄下的這些檔案: JBuilder.exe JBuilderW.exe  JBuilder.config jdk.config 。“JBuilder.exe”是一個通用的可執行外殼檔案,用以啟動Java程式,"JBuilderW.exe"好像是javaw.exe一樣,它把"JBuilder.exe"包裝起來執行時候不顯示那個conso le的視窗。使用這些檔案的關鍵是檔名。"JBuilder.exe"查詢一個檔案叫"JBuilder.config"的配置檔案,裡面包含了執行Java程式的必須資訊。

   同上,先將JBuilder的bin目錄下 JBuilder.exe,JBuilderW.exe,JBuilder.config,jdk.config 這三個檔案拷貝到一個新資料夾中,我的是importdata。此外還有一個檔案是 config_readme.html 也拷貝出來 ,這個檔案說明了修改配置檔案的一些引數語法。

    然後再找安java的主目錄下的jre資料夾,將jre檔案一併拷貝到  importdata 中,然後再找lib資料夾下的tool.jar檔案拷貝到 importdata/jre/lib中(最安全的辦法就是將java的主目錄下lib的全部內容都拷貝到importdata/jre/lib)。如果還引入了其他的類庫一併將那些類庫的*.jar 檔案拷貝到importdata/jre/lib中。這樣java的執行環境就有了。

    將你做的程式生成.jar包,執行過程:

     jar cvf importdata.jar importframe/*.class

    importframe是我編譯好的.class檔案所在的資料夾,打包為importdata.jar 檔案


     接下來就是修改配置檔案。(用文字編輯器開啟jdk.config和JBuilder.config)

     jdk.config 修改 

        查詢 javahome    ../jdk1.5/       改為 ./jre/

        查詢 addpath ../jdk1.5/lib/tools.jar     改為  ./jre/lib/tools.jar

    其他不需要更改

    JBuilder.config 修改

    # Add any configuration files located in the patch directory
    includedir ../patch

   如果這句保留  這句的話則將 includedir ../patch 改為 includedir ./patch 並在當前目錄中建一個 patch 資料夾;不保留則 在includedir ../patch加 #。(A comment can be added using the "#" sign:  # This is a comment )

   # Enable peer to peer debugging
   addpath ../lib/jdi-extension.jar

   # Enable HotSpot Serviceablity Agent
    include sa.config

   這兩行刪掉或註釋掉(加#)

   加入 addpath ./importdata.jar 即加入打包的importdata.jar 檔案(必須)

  查詢 # Make sure that DLL's in the lib directory also get picked up
   addlibpath ../lib

   改為addlibpath ./jre/lib

查詢

# Add all JAR files located in the patch, lib and lib/ext directory
addjars ../patch
addjars ../lib
addjars ../lib/bes
addjars ../lib/servers
addjars ../lib/p2p
addjars ../lib/ext

改為

# Add all JAR files located in the patch, lib and lib/ext directory
addjars ./jre/lib
addjars ./jre/lib/ext
addjars ./jre/lib/im
addjars ./jre/lib/security

如果前面時候你保留了includedir ./patch  則在這邊加入 addjars ./patch

最後 查詢

     # Start JBuilder using the main class
     mainclass com.borland.jbuilder.JBuilder 

    改為

     # Start JBuilder using the main class
     mainclass importframe.ImportData

   這句話是確定要java執行時的開始類的位置mainclass,我這得程式為importframe.ImportData為主程式。

其他的也可以改 也可以不改。具體的語法見config_readme.txt的詳細說明(建議將沒用的去除)。

   如何利用JBuilder.exe來啟動應用程式?只要把JBuilder.exe,JBuilerW.exe,JBuilder.config改名成相應的檔名,在JBuilder.config裡面指定主類和類路徑,就能夠通過執行JBuilder.exe(或者被改名後的exe檔案)來啟動Java應用程式了。

   我這裡將 JBuilder.exe和JBuilderW.exe改為import.exe,importw.exe 相應的配置檔案改為JBuilder.config改為import.config

    到此為止 ,你可以雙擊importw.exe 開啟你的java程式了。此時你可以將做好的程式放到沒有java執行環境的機器上試試。是不是大功告成了?如果沒成功可以在命令視窗執行import.exe看看是什麼錯誤然後修改配置檔案就可以了。

最後要說一點就是修改那個importw.exe 的圖示。做好一個程式不能還用JBuilder的圖示 那樣多不爽阿 ,要修改只能藉助其他的軟體了,我推薦一個叫ResHacker軟體。

下載地址http://www.angusj.com/resourcehacker/ 

具體用法見幫助 據說這款軟體很牛。

下載自己想要的圖示,利用來替換importw.exe或import.exe圖示。

我感覺執行這兩個檔案也沒多大的區別。

到此為止了,就這樣就配置好了一個帶jre的可執行檔案。

如有什麼問題,可以留言 。一起討論一下!

相關文章