Feeling

    三人行,必有我师焉

   ::  :: 新随笔 :: 联系 ::  :: 管理 ::
  185 随笔 :: 0 文章 :: 392 评论 :: 0 Trackbacks
GreenJVMMake 是一个精简JRE的小工具,详细信息请参见项目:

http://code.google.com/p/greenvm/

javaonepackage 是一个集成了GreenJVMMake的IDE,可以方便的生成自定义的JRE,详细信息请参见项目:

http://code.google.com/p/javaonepackage/

比较遗憾的是javaonepackage的作者遗失了代码,导致项目无法进一步的更新,影响了使用。

用以上工具生成的精简JRE通常不超过2M,可是用exe4j将Java应用转换成exe的时候,却会抛出Couldn't load main class,原因是因为exe4j使用自己的jar来加载用户的Jar包,这其中用到了一些反射机制,精简JRE里面当然是不含有多余的class文件的,所以加载必然失败。我们需要做的就是把这些相关的class添加到精简JRE中,这些class包含在 java\lang, java\util, sun\reflect 这三个包中。将这些class添加到精简jre中,大小也仅仅增加数百K而已,在我们可以的接受范围之内。

PS:由于GreenJVMMake的机制是检查运行时加载的class文件,所以它很可能遗失Jar运行所需要的exception class,这会导致运行时JVM的崩溃,用户需手动加载所有可能会产生的exception class,包含runtime的和非runtime的。
posted on 2010-09-02 10:53 三人行,必有我师焉 阅读(4015) 评论(1)  编辑  收藏

评论

# re: 解决Exe4j无法从GreenJVMMake生成的JRE加载main class的问题 2010-09-02 13:56 chai
是exe4j不是extjs
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
 
GitHub |  开源中国社区 |  maven仓库 |  文件格式转换