为什么有时 Java 不请求新版本的 jar 文件?

发布于 2024-07-23 08:28:09 字数 188 浏览 7 评论 0原文

每次我们更新 Java 应用程序(Java 客户端和 Java 服务器)时,我们都会遇到一些客户端大约出现的问题。 1% - 2% 不加载新的 jar 文件。 Applet 和 Java Web Start 都会出现这种情况。 如果清除 Java 缓存,则一切正常。

知道为什么 Java 不在每次启动时检查新的 jar 文件吗?

Every time we update our Java application (Java client and Java server) we have the problems that some clients approx. 1% - 2% does not load the new jar files. This occur with applets and also with Java Web Start. If you clear the Java Cache then all is working correct.

Any idea why Java does not check for new jar files on every start?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乖不如嘢 2024-07-30 08:28:09

这可能很难解决,但有一个简单的解决方法。 不必依赖正确的缓存更新,只需确保 JAR 文件名包含应用程序的版本/内部版本号即可。 新版本小程序的 JAR 文件将有效地存在于其他 URL 上(您还必须更改引导网页)。

This can be problematic to resolve but there is an easy workaround for this. Instead of relying on correct cache-update, just make sure that JAR file names include version / build number of the application. JAR files for new version of applet will then effectively live on other URL (you also have to change the bootstrap web-page).

娇柔作态 2024-07-30 08:28:09

我去过那里,唯一 100% 保证有效的解决方案是对您的资源(jar、图像等)使用不同的路径/url。 没有人能保证这不是缓存机制中的错误(如果你查看每 2-3 个版本的 JDK 更改列表,就会发现与 jar 的缓存机制相关的内容)。

因此,就这样吧(只需将上次修改时间作为字符串附加在 jar url 的末尾),您将不会遇到任何问题:

例如: http://myserver/applet/codebase/your_jar.jar?v=2487387543434 下一个版本将是 http://myserver/applet/codebase/your_jar.jar?v=343438534545455 <- 这是 jar 的最后修改时间。

I've been there and the only solution which is 100% guaranteed to work is to have a different path/url to your resources(jars, images, etc). Nobody can guarantee that cannot be bugs in the caching mechanism(if you look in the JDK change list every 2-3 releases there is something related with caching mechanism of jars) .

So go with that(just append last modified time as string at the end of the jar url) and you will not have any problems:

Ex : http://myserver/applet/codebase/your_jar.jar?v=2487387543434 and next version it will be http://myserver/applet/codebase/your_jar.jar?v=343438534545455 <- this is jar's last modified time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文