2

我将私有 JRE 与 DVD 中的 jar 程序一起发送。如果我直接从 DVD 运行程序,大约需要 3 分钟。由于光盘速度很慢,将 JRE 库加载到主内存可能需要一些时间。但是,当我关闭程序并重新启动时,它会立即启动,就好像 JRE 安装在本地计算机中一样(不是)。我认为即使在我关闭程序之后,JRE 也会保留在内存中。

3 分钟对用户来说是一个很大的等待时间,有什么办法可以优化代码(这是我唯一可以控制的),它只加载几个库来启动并按需加载其他必要的库。现在可能它正在尝试在显示程序窗口之前从 DVD 加载所有内容,如建议的那样

$java.exe -verbose -jar myProgram.jar

是否有任何其他解决方案可以在第一次快速启动程序?目前唯一的解决方法是使用Launch4J .bmp 启动屏幕,但它是非常静态的。

注意:我知道在本地机器上安装 JRE 可以解决问题,但该程序不适合技术用户,如果安装在自定义目录中,我的 Launch4J 找不到它。此外,我的 DVD 受版权保护,因此无法分发该程序。

4

1 回答 1

1

将您的应用程序与私有 JRE 一起打包到一个 EXE 中,该 EXE 将自解压到用户的临时目录中并自动运行您的应用程序。启动时间的改进会让你大吃一惊:

http://www.excelsior-usa.com/blog/excelsior-jet/java-app-as-a-single-exe/

(下载示例打包应用程序并将它们刻录到 DVD 上以快速验证我的声明。)

让我强调一下,您只能使用免费工具来实现结果,并且可以选择使用 Excelsior JET 进一步改进它。有关完整说明,请参阅我们的知识库文章(无论您是否使用 Excelsior JET,其中大部分都适用):

HOWTO:从您的 Java 应用程序创建单个 EXE

免责声明:您可能已经猜到了,我为 Excelsior 工作。但同样,这一切都适用于私有 JRE,并且在启动时间改进方面,结果几乎一样好。

于 2012-11-28T06:46:02.090 回答