Java Webstart intermittant JAR not updating

孤街醉人 提交于 2019-11-30 06:53:45

You might have solved the issue - But jnlp spec="1.0+" - The element is supported only after jnlp spec 6.0+. Probably thats is one of the reasons for your updates failing.

Assuming the client JREs are up to date, you might try <update check="timeout" policy="always"/> as suggested in this thread and described in the JNLP syntax documentation.

I had the same issues as yours and solved it by doing the following:

  1. Change

    <jar href="OurUpdatedJarName.jar" ...

    to

    <jar href="OurUpdatedJarName-$VERSION.jar" ...

  2. Put $VERSION into the <a href="foo-$VERSION.jnlp">Run</a>

We automatically update $VERSION for every deployment.

I know it's an ugly solution but it's one that works for us everytime.

Anthony Ho

this problem is caused by offline-allowed tag.

Per JNLP spec

If offline-allowed is specified, Java Web Start will also check to see if an update is available. However, if the application is already downloaded the check will timeout after a few seconds, in which case the cached application will be launched instead. Given a reasonably fast server connection, the latest version of the application will usually be run, but it is not guaranteed. The application, however, can be run offline.

we have distributed java web start applications over a dozen countries and when we have found that the application wasn't updating correctly it was for a miss-configuration of the county net, or in the network settings of user computer, mostly the proxy. In our central officines in spain java web start allways work ok.

I've been using the java webstart nextx.jar clone. I traced my not updating JAR issue to the use of the URLConnection.getLastUpdated() method. Since it uses the HEAD method to get the lastUpdated of the filename, this is the reason why sometimes it does not download due to caching of the getLastUpdated(). We decided to use our own method of refreshing our application as webstart is flawed.

I had this problem just because I didn't let the app opened time enough to complete the update.

If you have this option: update check="background" in your JNLP, wait some time before close the application in order to allow the update (that is running on background) finish.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!