代码之家  ›  专栏  ›  技术社区  ›  Rob Gilliam

是否可以在不使用applet的情况下获得web浏览器的Java VM?

  •  3
  • Rob Gilliam  · 技术社区  · 16 年前

    我们有一个历史悠久的Java applet,我们想升级到较新版本的Java(5或6),但直到今天,我们一直支持人们使用Java VM,最早可以追溯到1.1版本(特别是那些仍在使用Microsoft VM的人)

    作为升级的一部分,我们希望能够为使用过时虚拟机的人提供一个网页,告诉他们我们现在支持哪些版本,以及他们可以从哪里下载。理想情况下,我们希望这样做 没有 必须首先为Java 1.1 applet提供服务,才能确定JVM版本。

    如能回答以下任一问题(如有可能,请提供代码示例),我们将不胜感激:

    问题1:是否可以使用HTTP标头中的信息在服务器上的脚本中确定JVM?

    问题2:是否可以仅使用JavaScript来确定客户端的信息?

    4 回复  |  直到 16 年前
        1
  •  1
  •   Jason Day    16 年前

    我认为 deployment toolkit 可能会做你想做的事。

    在deployJava中使用runApplet()函数,以确保在启动小程序之前,客户端计算机上有最低限度的Java运行时环境可用。

        2
  •  1
  •   Johannes Weiss    16 年前

    Q1:没有

    Q2:是的,但我不知道它有多便携:

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    document.writeln('<table border="1">');
    for (var i = 0; i < navigator.plugins.length; i++) {
      document.writeln("<tr>");
      document.writeln("<td>" + navigator.plugins[i].name + "<\/td>");
      document.writeln("<td>" + navigator.plugins[i].description + "<\/td>");
      document.writeln("<td>" + navigator.plugins[i].filename + "<\/td>");
      document.writeln("<\/tr>");
    }
    document.writeln("<\/table>");
    </script>
    </body></html>
    

    这会输出一个所有插件的表,其中应该包含版本。我认为你必须遍历所有插件,检查名称中是否包含“java”,然后根据描述解析版本。..

        3
  •  1
  •   Tom Hawtin - tackline    16 年前

    有一个部署工具包可以用来做这类事情。

    为小程序提供服务应该不会太糟糕。它可能是一个1x1像素的bug,也可能是使用一个普通的applet和一个小的1.1类,如果它可以加载你的1.5代码,则可以转发applet生命周期方法。

    没有人应该继续使用1.1。它已经多年没有修复过安全漏洞了。

        4
  •  1
  •   mercator    16 年前

    这个脚本似乎在所有主流浏览器上都能奏效:

    http://www.pinlady.net/PluginDetect/JavaDetect.htm