JBuilder生成的exe文件,在沒有裝jre的機器上不能運行,於是我就在該exe文件的同一位置提供一個jre目錄,可是該exe文件不會去自動找這個jre,應該怎樣做才能使exe文件找到這個jre,並運行起來呢?
先寫一個bak,檢查有沒有jre,有的話就直接運行你的程序,沒有的話,先安裝再執行。
---------------------------------------------------------------
JBuilder有一個隱藏的技巧可以讓你從可執行文件來啟動Java程序,(不出現console窗口我沒有做到)。需要JBuilderX的bin目錄下的這些文件:
JBuilder.exe
JBuilderW.exe (可選)
JBuilder.config
jdk.config
“JBuilder.exe”是一個通用的可執行外殼文件,用以啟動Java程序,“JBuilderW.exe”好像是javaw.exe一樣,它把“JBuilder.exe”包裝起來,但是運行時候不顯示那個console的窗口。使用這些文件的關鍵是文件名。“JBuilder.exe”查找一個文件叫“JBuilder.config”的配置文件,裡面包含了運行Java程序的必須信息。同樣的“JBuilderW.exe”查找“JBuilder.exe”來啟動不帶Console窗口的Java程序。如果把JBuilder.exe重命名為“foo.exe”,那“foo.exe”將去尋找“foo.config”配置文件,同樣“JBuilderW.exe”被重命名為“fooW.exe”,它會去尋找“foo.exe”文件。
說到這裡,聰明的讀者應該猜到怎樣利用JBuilder.exe來啟動應用程序了。只要把JBuilder.exe,JBuilerW.exe,JBuilder.config改名成相應的文件名,在JBuilder.config裡面指定主類和類路徑,就能夠通過執行JBuilder.exe(或者被改名後的exe文件)來啟動Java應用程序了。
在\jbuilderX\bin\目錄下,後把JBuilder.exe,JBuilder.config,jdk.config四個文件拷貝到某目錄下,然後打開Jbuilder.config文件,作相應的修改:
在JBuilder.config裡面找到下面兩行
# Start JBuilder using the its main class
mainclass com.borland.jbuilder.JBuilder ----修改主類為自己希望的類
config裡面可以識別的命令可以在JBuilder/bin目錄下的config_readme.txt裡面找到詳細說明。
然後修改jdk.config裡面的Javapath相對的路徑,例如原來是
javapath ../jdk1.3/bin/Java ----修改主類為自己打包的jre路徑(可以使相對路徑,如./jre)
最後將JBuilder.exe,JBuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。
下面的小技巧可能更有趣,將Jar文件打包進入exe文件!
將jar包附加到JBuilder.exe後面去,執行過程:
copy /b ..\JBuilder.exe+hello.jar foo.exe
一個含jar包的exe文件得到了!
這個過程的大致原理是:exe文件的重要信息都在文件頭部,所以把亂七八糟的東西放exe文件尾部是不要緊的;而jar/zip文件的重要信息是在文件尾部的,這樣它們兩不相干,能夠容易的被執行。