zoukankan      html  css  js  c++  java
  • deployJava.js的一个缺憾:无法正确检测客户端JRE

    deployJava.js是Java Deployment Tools中的一个,使用该工具可以极大的简化在网页中启动applet的工作。

    最新版本的deployJava.js:

    http://www.java.com/js/deployJava.js 

    相关的注释版本:

    http://www.java.com/js/deployJava.txt 

    这么好的一个工具有一个缺憾:其getJREs()方法无法完美地检测客户端的java安装及使用情况:getJREs()会返回所有已经安装的客户端JRE,而不管该JRE是enabled还是disabled。

    比如,我的本机JRE情况:

    1.6.0_17    disable

    1.5.0_20    enable

    1.4.2       enable

    此时,getJREs()会返回3个对象(1.4, 1.5, 1.6),即使1.6这个时候已经被系统禁用了。在这种情况下,如果根据getJREs()的结果而启动1.6 only的applet版本,就会造成错误。

    来看一下getJREs()的代码:

    代码
     1 getJREs: function() {
     2         var list = new Array();
     3         if (deployJava.isPluginInstalled()) {
     4             var plugin =  deployJava.getPlugin();
     5             var VMs = plugin.jvms;
     6             for (var i = 0; i < VMs.getLength(); i++) {
     7                 list[i] = VMs.get(i).version;
     8             }
     9         } else {
    10             //more code here...
    11         }
    12 }


    可以看到,在js代码中,并没有对enable/disable相关信息的处理。

    Google了一下,发现也有别人提出过这个问题,但是却没有满意的答案。目前为止,除了在启动后的applet中弹出警告外,没有想到完美的解决方案。

  • 相关阅读:
    Poj 3287 Catch That Cow(BFS)
    Poj 1321 棋盘问题(搜索)
    Poj 2488 A Knight's Journey(搜索)
    解决ListView 缓存机制带来的显示不正常问题
    Poj 1631 Bridging signals(二分+DP 解 LIS)
    字符串相似度的几种衡量标准
    linux环回文件
    [转] CentOS---网络配置详解
    Dockerfile学习(二)
    Dockerfile学习(一)
  • 原文地址:https://www.cnblogs.com/cshao/p/1676130.html
Copyright © 2011-2022 走看看