Java – How to specify a JRE range in jnlp file

javajava-web-startjnlp

We have a java app which uses Java Web Start. The jnlp file is configured with [j2se version="1.5+"]. So if JRE 1.5 and 1.6 are installed, the app is run on 1.6.

Now, we have requirement where the app should be restricted to run only within the range – JRE 1.5.0_07 through JRE 1.5.0_17

[j2se version="1.5*"] will not work – it will always launch the app with the latest jre from 1.5 family.

I can request an exact product version by including the href attribute.
[j2se version="1.5.0_14" href="http://java.sun.com/products/autodl/j2se"/]

But how do I specify a specific range of JREs in the jnlp file so that JWS picks up a JRE from that range only? So if 1.5.0_07, 1.5.0_17 and JRE 6 are installed, it should run the app on 1.5.0_17.

Is there a good way to accomplish this?

Best Answer

I think what you want is:

<j2se version="1.5.0_17" />
<j2se version="1.5.0_16" />
<j2se version="1.5.0_15" />
<j2se version="1.5.0_14" />
<j2se version="1.5.0_13" />
<j2se version="1.5.0_12" />
<j2se version="1.5.0_11" />
<j2se version="1.5.0_10" />
<j2se version="1.5.0_09" />
<j2se version="1.5.0_08" />
<j2se version="1.5.0_07" />

See: http://docs.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html#resources

The j2se element specifies what Java 2 SE Runtime Environment (JRE) versions an application is supported on, as well as standard parameters to the Java Virtual Machine. If several JREs are specified, this indicates a prioritized list of the supported JREs, with the most preferred version first.

I've also looked at the Java 6 / Java 7 at it looks like it will work there as well.

http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html#resources

http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html#resources