使用Webstart部署Java客户端时,我们需要打包扩展jar文件。扩展jar需要安装在jre/lib/ext下,并在由WebStart启动时使其可用于Java客户端。

我设法将文件复制到正确的位置,但是我面临的问题是在将扩展jar安装在lib/ext下之后,我需要重新启动客户端JVM才能拾取新的jar。

如何避免需要重新启动JVM?

最佳答案

如何避免需要重新启动JVM?


你不能。类加载器通常不重新加载类或其他资源,并且我想更改引导程序和其他与JRE相关的类加载器(或尽快对其进行更改以产生影响)是不可能或不切实际的。

另一种策略可能是:


检查资源是否存在
如果未找到,则假定在此运行时使用installer-desc扩展名安装了它们,并且:

使用JNLP URL调用BasicService.showDocument(URL)以启动新实例。
在当前实例上调用System.exit(0)以结束它。



弹出JOptionPane以确认重新启动可能需要付费。例如。


要立即对OGG进行编码,请重新启动应用程序。
重新开始?

确定取消


作为旁白。通常建议不要将归档文件放在JRE的任何目录中。

10-01 20:37
查看更多