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的可執行文件。
如有什麼問題,可以留言 。一起討論一下!