I am developing an .aspx page which will ultimately launch an applet after the user clicks on a button (I am using the <applet>
tag). So, I would like to detect if java is enabled/installed on the user's browser.
I am using navigator.javaEnabled() method. However, even though this is working fine on IE7, it is returning inconsistent results on Firefox 3.0.12 (don't know about different browsers), sometimes saying that java is enabled (which it is), and then after launching the applet and coming back out of the applet to this page again, it will report false. If I close firefox and return to the applet launching page, navigator.javaEnabled() will report true again (correctly).
Is there anything that is determining this inconsistent behaviour or is navigator.javaEnabled() not the best way to do the java applet check?
Thanks in advance.
You could also try using the object tag.
With it you can determine what version of java is installed and prompt the user to download it if it does not exist.
This is a sample object tag taken from an app that I work on, JRE complications required us to run on 1.4.2_03 for compatibility with other applications.
The classid specifies the version of Java you want to load, you can set this to a specific JRE, a specific family i.e. 1.4.X or whatever the latest version is.
The codebase controls where the user is directed if they do not meet what the classid is set to.
Note that if a client has 1.5 or higher installed you cannot reference an older JRE due to security constraints, You can override this via a registry setting in windows but I would not recommend it.
I believe the security is setup so you can only reference an older JRE in the same family. i.e. user has 1.6.0.10 you can reference 1.6.0.1 but cannot go to anything in 1.5.X Though I think I remember seeing a security dialog pop up after 1.6.0.11 where as before it would just default deny the request.
I think that this lib has the most comprehensive documentation and implementation that I could find and works pretty well
http://www.pinlady.net/PluginDetect/Java/
Make in your applet a method
Now create an applet:
And now wrap this code in some helper function
Why this works? If applet runs it will return true. If applet doesn't run or Java is not supported you'll get an exception, so you'll get false.
There is also a commercial product called BrowserHawk.
http://www.cyscape.com/products/bhawk/workshop/detectjava.aspx?bhcp=1