Question

Is there a way to point to a specific JRE/JDK location to run a JWS application? I'm looking into specifying the actual location of the JRE, not only it's version via Java SE element of JNLP file. I dont want to access any system JRE, I only want to use whats bundled with my application.

Currently I am trying to bundle 1.6_45 with my app. However I am encountering issues when a user has 1.7_xx JRE installed on their system. It blocks the launch of the webstart application. The jars are self signed and getting them signed by a CA authority is not an option as it is too $$. I changed the j2se version tag in my jnlp to say 1.6* and this allowed it to run with 1.7_xx present. One bug squashed.

Now the issue is that systems are being upgraded to 1.6_71 [private oracle version], that apparently has some 1.7 security fixes backported in it. So now because of the jnlp tag having 1.6*, my app is picking up 1.6_71 and completely hanging. Webstart just opens the java console and hangs. I tried adding -Djnlpx.home to the jnlp java-vm-args, pointing to the bundled jre/bin, but no luck there.

One way I tried [from a post here on SO] is that I created a shortcut to my particular javaws passing the jnlp file location as a parameter. This did not work. It still picked up 1.6_71 and hung.

At this point, if I google anymore, its going to start showing me a captcha...sigh. Any pointers are greatly appreciated! Thanks!

Was it helpful?

Solution

Is there a way to point to a specific JRE/JDK location to run a JWS application?

Short answer, no. Long answer, nope.

OTHER TIPS

Oracle's latest release of Java 7 Update 51 includes new security changes that will block some applications. This is the new "security baseline" and there is apparently an equivalent code level for 1.6.

One of the configuration options that helps determine what exactly happens is the Security Level, found in the Security tab from (Windows) Control Panel -> Java. If you set the security level at it's lowest (can't remember the name) then you might not get blocked. Security level High will block unsigned and self-signed. Security Level Very High will be even more restrictive, like blocking an expired application - meaning the certificate has expired.

Also, maybe you could try setting the specific level of the JRE you want to run - see the link http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html#jnlp for more info.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top