我有一个jar文件形式的应用程序,大小约为2MB。出于几个原因,我必须将JRE与我的应用程序捆绑在一起。当我使用jar和JRE创建MSI时,MSI大小约为30MB。
我正在寻找可以捆绑的商业或免费JRE,这样我就可以将MSI的大小减小到尽可能低。我总共看5MB,但即使高达10MB也可以。 预建的JRE二进制文件很棒,但不是绝对必须的。
这些和其他线索中的很多答案都表明Excelsior。我下载了Excelsior JET&评估版。试了一下 - 由于一些原因,我认为它可能不适合我。
1)Excelsior着眼于减少已安装产品的占地面积,而不是安装程序。我不太关心已安装产品的大小 - 我主要关注较小的下载(我的产品安装程序目前为30MB)。
2)除此之外,Excelsior对代码进行了大量优化以实现这一目标 - 我不希望我的jar文件被触及。我希望我的罐子里有一个较小的JRE。也没有办法关闭一些优化措施。
3)Excelsior创建了一个EXE - 我不是特别想要这个 - 我可以通过javaw.exe命令行调用我的产品。
那么对我的需求有什么建议吗?
答案 0 :(得分:1)
Avian和ProGuard是你的朋友,因为有人在你链接到的一个主题中有already mentioned(这是第二个评论顺便说一句)。
来自Avian主页:
类库设计为尽可能松散耦合, 允许像ProGuard这样的工具积极地隔离最小代码 申请所需。这意味着更小的下载和 更快的启动。
听起来就像你需要的一样。如果这对您没有帮助,那么请查看该线程中引用的其他工具。
答案 1 :(得分:1)
这里有一个可能的解决方案。这些工具安装了Java的简约版本。我不知道它是否足够小。看看,看看: https://superuser.com/questions/745112/how-do-i-run-a-jar-file-without-installing-java
答案 2 :(得分:0)
可能过时了:有关于JavaKernel / ConsumerJRE的谣言。
http://weblogs.java.net/blog/enicholas/archive/2007/05/java_kernel_unm.html
http://www.oracle.com/technetwork/java/javase/kernel-135055.html
答案 3 :(得分:-1)
我会将JRE作为Oracle(或您首选供应商)的单独安装。如果您愿意,可以根据需要下载。如果已经安装了JRE,即使是减少的JRE,再次下载也是一种浪费。
BTW:我不会搞乱JRE中的内容,因为