这很奇怪。我的理解(最近重新阅读文档后没有改变)是在客户端运行时更换JNLP启动服务器(在我们的例子中为web)上的jar是安全的。如果我理解正确,在启动时,客户端会下载jar然后在本地运行它。因此,更新源jar在下次启动之前无效,此时将检索它(作为更新版本)。
我的一位同事最近表示,当我们所有的客户都不在系统时,他只会部署新的罐子,因为如果他们在他们打开时更新了它会造成问题。根据我以前的经验或我的理解,这完全不匹配。所以,我重新阅读了文档,并对我在这个问题上的立场感到非常满意。但是,然后我对该项目进行了更新并将其推出。在接下来的一个小时内,多个客户端开始出现各种奇怪的问题(如果您更新某人正在直接运行的jar,您将获得这些问题)。我已经确认他们都在做JNLP,我可以看看本地Java做下载等等。我不知道他们运行的副本怎么会知道JNLP源jar被更新,除非他们重新启动。
有时,客户在同一机构上同时运行多个软件副本。 JNLP有多聪明,是否会在已经使用的缓存中下载更新的jar?可能导致问题的任何其他事情?
答案 0 :(得分:0)
看来JNLP确实只是将新的.jar复制到缓存中旧的.jar之上。没有问题,如果客户端没有同时运行该软件的另一个副本,但如果它们是一个大问题!已经运行的软件变得疯狂,做各种奇怪的事情,因为它现在运行的缓存副本与RAM中的内容不匹配。