16

我有一个 jar 文件形式的应用程序,大小约为 2MB。出于多种原因,我必须将 JRE 与我的应用程序捆绑在一起。当我使用我的 jar 和 JRE 创建 MSI 时,MSI 大小约为 30MB。

我正在寻找可以捆绑的商业或免费 JRE,以便我可以将 MSI 的大小尽可能减小。我正在查看总共 5MB,但即使高达 10MB 也可以。预构建的 JRE 二进制文件会很棒,但不是绝对必须的。

我查看了此处此处发布的类似问题。

这些和其他线程中的很多答案都建议使用 Excelsior。我下载了 Excelsior JET 的评估版并试用了它 - 出于几个原因,我认为它可能不适合我。

1) Excelsior 着眼于减少已安装产品而不是安装程序的占用空间。我不太关心已安装产品的大小 - 我主要关注较小的下载(我的产品安装程序目前为 30MB)。

2)除其他外,Excelsior 对代码进行了很多优化以实现这一点 - 我根本不希望我的 jar 文件被触及。我想要一个更小的 JRE 和我的 jar。也没有办法关闭一些优化。

3) Excelsior 创建一个 EXE - 我并不是特别在寻找这个 - 我可以通过 javaw.exe 命令行调用我的产品。

那么对我的需要有什么建议吗?

4

4 回答 4

1

这里有一个可能的解决方案。这些工具安装了 Java 的简约版本。不知道对你来说够不够小。看看看看: https ://superuser.com/questions/745112/how-do-i-run-a-jar-file-without-installing-java

于 2014-05-03T12:56:32.310 回答
1

Avian 和 ProGuard 是您的朋友,因为有人在您链接到的线程之一中已经提到过(顺便说一句,这是第二条评论)。

从禽鸟主页:

类库被设计为尽可能松耦合,允许像 ProGuard 这样的工具积极地隔离应用程序所需的最少代码。这转化为更小的下载和更快的启动。

听起来正是您需要的。如果这对您没有帮助,请查看该线程中引用的其余工具。

于 2012-10-18T11:44:55.663 回答
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

于 2012-10-18T12:25:26.627 回答
-1

我会让 JRE 与 Oracle(或您的首选供应商)分开安装。如果您愿意,可以根据需要下载它。如果已经安装了 JRE,即使是减少的 JRE,再次下载也是一种浪费。

顺便说一句:我不会弄乱 JRE 中的内容,因为

  • AFAIK 违反了您的许可协议。
  • 很难做到正确并且不删除您有一天可能需要的课程。
于 2012-10-18T12:06:38.673 回答