GreenJVMMake 是一個精簡JRE的小工具,詳細信息請參見項目:
http://code.google.com/p/greenvm/
javaonepackage 是一個集成了GreenJVMMake的IDE,可以方便的生成自定義的JRE,詳細信息請參見項目:
http://code.google.com/p/javaonepackage/
比較遺憾的是javaonepackage的作者遺失了代碼,導致項目無法進一步的更新,影響了使用。
用以上工具生成的精簡JRE通常不超過2M,可是用exe4j將Java應(yīng)用轉(zhuǎn)換成exe的時候,卻會拋出Couldn't load main class,原因是因為exe4j使用自己的jar來加載用戶的Jar包,這其中用到了一些反射機制,精簡JRE里面當然是不含有多余的class文件的,所以加載必然失敗。我們需要做的就是把這些相關(guān)的class添加到精簡JRE中,這些class包含在 java\lang, java\util, sun\reflect 這三個包中。將這些class添加到精簡jre中,大小也僅僅增加數(shù)百K而已,在我們可以的接受范圍之內(nèi)。
PS:由于GreenJVMMake的機制是檢查運行時加載的class文件,所以它很可能遺失Jar運行所需要的exception class,這會導致運行時JVM的崩潰,用戶需手動加載所有可能會產(chǎn)生的exception class,包含runtime的和非runtime的。