Java Web Start - How to clear cache (or update the app from user's perspective)
Asked Answered
B

2

17

After the JNLP gets downloaded in the browser it becomes cached so it doesn't need to be downloaded again, which is good. However, as a consequence, if I update the JAR that the JNLP uses, users will still see the old version of the app that is in the cache.

You can clear the cache by running this in the terminal:

javaws -uninstall

But obviously you could not expect from users to run this when your update is ready. It should be more seamless than that.

One idea is to change the jnlp file name so they download new file, like MyJWS-01.jnlp, to include version numbers.

Is there any other way?

Benzoate answered 12/1, 2012 at 0:25 Comment(0)
H
7

"The update element is used to indicate the preferences for how application updates should be handled by Java Web Start." The default attribute values would seem to "to check for updates until timeout" and "to always download updates without any prompt." For example,

<update check="timeout" policy="always"/>

Are you getting a different result?

Hairball answered 12/1, 2012 at 1:4 Comment(8)
update check="background". I have this in my jnlp and it didn't update, it used the old one.Benzoate
I didn't set the policy, just check="background". Should I put always/always for these two attributes?Benzoate
The default is <update check="timeout" policy="always">. You might start with that. Once you know what works, then experiment.Hairball
I'm marking this as answered although I haven't tried it yet myself. I guess it has to work and I'll post an update once I try.Benzoate
I did try it and it works. I'm using check="always" policy="always"Benzoate
and where is the timeout period or frequency defined? Where does the value come from?Lerma
@Michael: These are elements in the .jnlp file.Hairball
@Hairball I know it goes in the .jnlp file but wasn't sure if it was in the security tags, information, application, etc. It turns out the update tag is at the same level as thoseLinseed
C
3

You can also use the jnlp property name="jnlp.versionEnabled" and value="true" where you can enter a specific version number for the jar, and that way a new one will be delivered when you release a new version.

Cl answered 27/9, 2013 at 9:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.