GreenJVM精簡Java運(yùn)行環(huán)境
GreenJVM是一系列jre精簡實(shí)現(xiàn)集合,它能夠輕松的令java虛擬機(jī)實(shí)現(xiàn)綠色應(yīng)用。
GreenJVM的實(shí)現(xiàn)原理非常簡單,主要操作過程可分為三部分:
1、去除虛擬機(jī)中不被程序調(diào)用的類。 2、壓縮虛擬機(jī)體積,減少空間占用。 3、制作一個能夠檢測本地環(huán)境的啟動殼,取代java.exe加載jvm,并在執(zhí)行時釋放虛擬機(jī)。
就技術(shù)角度而言,這三項(xiàng)可說毫無新意可言,但從實(shí)用角度來說,卻能令臃腫的虛擬機(jī)“瘦”下來,免除普通用戶安裝的煩惱,從而實(shí)現(xiàn)java程序的綠色發(fā)布。
精簡后的jre在桌面應(yīng)用中一能維持在5MB-3MB,非桌面應(yīng)用則可能降低到2MB以下。
2009年4月12日更新,GreenJVM-0.1.5版BUG修訂
此 問題由網(wǎng)友反饋,內(nèi)容如下[下載的GreenJVM-0.1.5 無法運(yùn)行程序,rt.pack200沒有解壓,手工解壓后也不能運(yùn)行],經(jīng)查原因在于GreenJVM對于pack200解壓時路徑空格未經(jīng)處理,導(dǎo)致當(dāng) 用戶將GreenJVM丟在桌面等含有空格的文件夾時將無法運(yùn)行,現(xiàn)已修正。
在此特別鳴謝反映此問題的不知名網(wǎng)友。
2009年3月30日更新,GreenJVM-0.1.5,內(nèi)容如下:
1、變更jvm.dll加載模式,支持中文路徑。
2、調(diào)整默認(rèn)加載參數(shù),避免因環(huán)境差異而產(chǎn)生的本地圖形設(shè)備調(diào)用異常。
3、支持jar的2次解壓縮,當(dāng)通過pack200將jar壓縮為后綴名“pack200”的文件時,GreenJVM將自動嘗試使用unpack200解壓執(zhí)行目錄及子目錄中所有該后綴文件。
4、增加參數(shù)“SET_START_INIT_BAT”,通過此參數(shù)可設(shè)定一個批處理文件于GreenJVM啟動同時執(zhí)行。
5、更改0.1.4版[亂數(shù)球體]運(yùn)行示例為[Java版AVG游戲開發(fā)入門示例0.1.1](增加FPS顯示),在無jre的xp、2000、2003等Windows環(huán)境下測試運(yùn)行正常。
2008年9月6日更新GreenJVM-0.1.4(即0.1.1.4),內(nèi)容如下:
1、增加參數(shù)"SET_START_MAIN_CLASS_AUTO_LOAD",當(dāng)此項(xiàng)為真時,程序?qū)⒃O(shè)置main函數(shù)于注冊表,于開機(jī)時自動執(zhí)行。
2、增加初始化界面設(shè)置,參數(shù)集合如下:
1. //程序啟動前使用初始界面(此項(xiàng)為false時,以下設(shè)定皆無效)
SET_START_INIT=true
2. //使用的初始界面圖片
SET_START_IMAGE=init.bmp
3. //設(shè)置true時初始窗體將自動居中,同時top及l(fā)eft無效
SET_START_LOCATION_AUTO=true
4. // 設(shè)置初始窗體在桌面的X軸
SET_START_LOCATION_LEFT=100
5. // 設(shè)置初始窗體在桌面的Y軸
SET_START_LOCATION_TOP=100
6. // 設(shè)定初始窗體顯示時間
SET_START_TIME=1000
2008年8月21日-26日更新GreenJVM-0.1.1(即0.1.1.0) to 0.1.3(即0.1.1.3),內(nèi)容如下:
1、提供原始GreenJVM.exe執(zhí)行文件。
2、提供原始vm.cfg文件配置方式。
3、新增SET_LOCAL_JRE_UPDATE項(xiàng),通過此項(xiàng)可以命令本地JRE自動更新。
4、新增7z格式壓縮包解壓支持,建議使用此格式進(jìn)行虛擬機(jī)壓縮。
0.1.1.5版配置文件如下:
LOON
//設(shè)定系統(tǒng)JRE自動更新
SET_LOCAL_JRE_UPDATE=false
//虛擬機(jī)解壓方式,目前提供有7Z、RAR、ZIP三種主流壓縮方式的解壓,建議使用壓縮比最高的7z方式
SET_UNPACK_METHOD=7z
//虛擬機(jī)壓縮包名稱,要求配置在vm.cfg同路徑下
SET_VM_NAME=jre_abridgment.pack
//選填,當(dāng)初始化結(jié)束后.允許執(zhí)行一個bat文件
//SET_START_INIT_BAT=run.bat
//檢測本地jvm版本,低于期望值時使用自帶jvm,否則以本地虛擬機(jī)優(yōu)先運(yùn)行
SET_START_REQUIRE_VERSION=1.6
//環(huán)境變量中的JavaHome路徑
SET_START_ENV=JAVA_HOME
//期望加載的jar,多包以';'分隔
SET_START_JAR_PATH=AVGSimple.jar
//期望執(zhí)行的main類
SET_START_MAIN_CLASS=org.loon.simple.avg.start.Main
//設(shè)定注冊表令開機(jī)時自動加載我們的main類
SET_START_MAIN_CLASS_AUTO_LOAD=false
//程序啟動前使用初始logo窗體(此項(xiàng)為false時,以下設(shè)定皆無效)
SET_START_INIT=false
//選填,使用的初始logo窗體圖片
//SET_START_IMAGE=init.bmp
//設(shè)置true時初始logo窗體將自動居中,同時top及l(fā)eft無效
SET_START_LOCATION_AUTO=true
//設(shè)置初始logo窗體在桌面的X軸
SET_START_LOCATION_LEFT=150
//設(shè)置初始logo窗體在桌面的Y軸
SET_START_LOCATION_TOP=150
//設(shè)定初始logo窗體顯示時間
SET_START_TIME=1000
{GreenJVMMake}是一個非常簡單的Java應(yīng)用,僅有6KB。它能夠記錄Java應(yīng)用程序與JRE中rt.jar的依賴關(guān)系,進(jìn)而僅以其依賴類生成一個新的rt.jar文件,從而最大限度精簡JRE體積,建議其與GreenJVM配和使用。
