使用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的任何目录中。