Feeling

    三人行,必有我师焉

   ::  :: 新随笔 :: 联系 ::  :: 管理 ::
  85 随笔 :: 0 文章 :: 392 评论 :: 0 Trackbacks
  最近很多人问我SWT Extension 项目上的那个不需要的JREExample是如何做出来的。我以前也会执着于这个问题,毕竟如果不依赖于JRE的话,就不需要为用户准备一个容量极大的安装包,但是这种做法看似有利,实则有利有弊。

就我所知,目前把Java程序编译成本机可执行程序的方法有两种,一种是GCJ,免费的,一种是Excelsior JET,商业的。我已经很久没有碰过GCJ了,因为当初用起来实在是非常麻烦,现在的版本如何,我不太清楚。我自己使用的是Excelsior JET,版本为3.7。有一点要注意的的是,Excelsior JET的后续版本好像已经不支持这个功能了,3.7是我所知的最后一个版本,能支持当前所有的Win32平台和早期的Linux(当前比较流行的Ubuntu不支持,因为内核版本过高,不过企业版Redhat没有问题)。不过我是很久以前从0day当下来的,由于0day仓储只保留一年,故现在已经找不到了,我自己的机器上也没有安装包了(有一次大意之下,把整个Download目录全给删掉了,事后悔之晚矣)。

Excelsior JET无非就是用自己的Runtime来代替JRE,只是比JRE更加灵活,根据Java程序具体的依赖来生成对应的Runtime。其实这个Runtime也挺大的,通常10M左右,不过比起JRE,那要小很多了。SWT Extension上的那个例子只有6M,是因为我用ASPack把所有的DLL文件全部压缩过了,体积小了一半。

就我的感觉,Excelsior JETGCJ更加灵活,也更好用,毕竟是商业版的东西,它的网站上曾经有例子将Eclipse 3.0编译成本机程序,不过我当初照着例子试了一遍,没有成功。Excelsior JET的编译过程极为耗时,我上大学的时候,当时机器只有128M内存,编译了一天JRE也没有完成,后来找同学借了根256的内存,这才得以完成。

JAVA代码编译成本机程序的弊端也是有的,那意味着你将无法在线升级,GCJ也许可以,但是Excelsior JET是绝对不行的,这是因为它最后一步要对所有DLL进行链接,如果更换了DLL文件,它会检测出来并报错。

各位看官如果哪位有兴趣,可以自行在网上查找Excelsior JET3.7或其他版本。由于安装包我自己也没有,故无法提供下载,见谅。

posted on 2008-05-18 15:38 三人行,必有我师焉 阅读(6304) 评论(7)  编辑  收藏

评论

# re: Excelsior JET:把Java程序编译成本机可执行程序的工具 2008-05-18 20:21 BeanSoft
是呀 编译特别慢。。。很早之前弄过,后来觉得老用破解软件,于心不忍,呵呵,而且新版的安装包也特别大。  回复  更多评论
  

# re: Excelsior JET:把Java程序编译成本机可执行程序的工具 2008-05-19 19:27 BeanSoft
弱弱的问下你还有 key 嘛 3.7 的。。。。  回复  更多评论
  

# re: Excelsior JET:把Java程序编译成本机可执行程序的工具 2008-05-19 20:16 三人行,必有我师焉
0day的那个版本是不需要key的,安装包就已经破解好了。尽管安装包我已经弄丢了,不过Win32 绿色的也可以用,只不过要配置一下环境变量。Linux的那个版本我就更找不到了,主要是现在只支持部分Linux,觉得没多大意思,3.7的patch好像解决了这个问题,但是需要正版用户才行。我等破解用户,就只能垂涎了。你要是还想玩玩的话,我可以打包一个绿色版给你。另外3.7只支持到JDK1.4,1.5的话都是需要官方patch的。  回复  更多评论
  

# re: Excelsior JET:把Java程序编译成本机可执行程序的工具 2008-05-20 19:30 BeanSoft
好啊 打包给我个绿色版好了 可惜这几天白天不能上网 我给你留言个帐号 帮忙上传下 多谢了  回复  更多评论
  

# re: Excelsior JET:把Java程序编译成本机可执行程序的工具 2008-05-21 16:35 Always BaNg.
我觉得Java程序不需要JRE是背离Java精神的,只能作为特殊情况对待。  回复  更多评论
  

# re: Excelsior JET:把Java程序编译成本机可执行程序的工具 2008-05-23 00:11 BeanSoft
多谢了!已经收到,再次感谢!

这个也是需要JRE的,是一种特殊的JRE而已.  回复  更多评论
  

# re: Excelsior JET:把Java程序编译成本机可执行程序的工具 2008-05-24 21:21 三人行,必有我师焉
@BeanSoft
只是它自己的runtime而已,基本上和JRE无关了。  回复  更多评论
  


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


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