Determine whether client browser has java installed and can launch applets

独自空忆成欢 提交于 2019-11-27 23:14:41

Make in your applet a method

public boolean isRunning() { return true; }

Now create an applet:

<applet src=".../yourapplet.jar" id="someId">

And now wrap this code in some helper function

try {
  var x = document.getElementById('someId').isRunning()
  return x;
} catch(e) {
  return false;
}

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.

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.

 <object classid="clsid:CAFEEFAC-0014-0002-0003-ABCDEFFEDCBA" id="MyApplet" 
 name="MyApplet" width="4" height="4" 
 codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_2_03-windows-i586.cab#Version=1,4,2,03">

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.

There is also a commercial product called BrowserHawk.

http://www.cyscape.com/products/bhawk/workshop/detectjava.aspx?bhcp=1

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/

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