本例中以GreenJVM直接压缩精简后绿色版游戏下载地址:http://download.csdn.net/source/612943
本回主在描述精简一个Java应用的实际步骤,选取了ApoDefence这个小型的Java即时战略游戏作为用例。
该作者信息可以在http://home.arcor.de/newbielein/获得,这是一个德文网页,作者也提供了其它一些小型Java游戏的展示,比如:
有兴趣的可以下载作为参考。
ApoDefence是一个Java制作的2D即时战略游戏,游戏主题是本国要塞的加固及本国城堡的防护,虽然作者所提供的功能对比商业化游戏远不够完全,但是即时战略游戏的基本要素,如小地图,点选对象,建筑的搭建、修理、破坏、计时,建筑升级,多兵种协作,敌我互动及地图编辑都已经在由此游戏中展现出来,应该这个程序说对于开发Java即时类游戏而言是一个不错的参考范例。
ApoDefence主要文件有两部分,一是ApoDefence.jar本身,一是levels文件夹下的脚本地图,两者累计大小为734KB。
应该说,如果它永远只有这么大,将他放到同人游戏站点上,下载量是绝不会输给其他语言开发的同类游戏的。
游戏界面1:
游戏界面2:
但遗憾的是,这个游戏是Java开发的,如果没有动辄数十兆的虚拟机支持,它是很难跑得起来的。
试问你看到这么一个小游戏,记住,也仅仅是个小游戏,它似乎很好玩,却需要下载十几甚至几十兆的安装程序,你还会有兴趣去尝试吗?我相信大多数人的答案会是否定的,所以,我开始试着精简它。
第一步:整理你的RT.JAR文件
我们都知道,JRE的完整版体积是很大的,在其文件夹内充斥着无数的dll,jar及properties配置文件,但要说到其中那个文件最大,最占用空间,则首推rt.jar文件莫属。
以JRE1.6中的rt.jar为例,仅它一个jar,便占用了将近46MB的硬盘空间,这无疑是种垄断,严重挤压了其它jar同类的生存空间~~~
前两天我在Blog发过一篇文章,讲的就是这件事(精简jre体积),我提供了一个名为GreenJVMMake.jar的6KB小程序,它能够准确的记录每次启动Java程序所调用类与rt.jar中类的对应关系,并且在程序执行结束后生成一个仅携带调用类的rt.jar。
那么,我们要开始精简rt.jar了。
首先,我们制作一个简单的bat批处理文件,内容如下:java -jar GreenJVMMake.jar -t da -i ./ApoDefence.jar -o ./
为的是调用ApoDefence.jar图形程序,并将精简后的rt.jar在本地输

本文介绍了如何精简Java Swing游戏ApoDefence的运行环境,通过GreenJVMMake.jar工具记录并创建针对性的rt.jar,从46MB精简至3.2MB。然而,遇到跨平台问题,通过保留特定系统环境所需类库解决。接着,通过Install4J或7-Zip压缩JRE,实现5MB内的绿色版游戏发行。最后,通过Install4J打包发布,生成1.25MB的安装程序,成功在无JRE的机器上运行。

1758

被折叠的 条评论
为什么被折叠?



