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

是否可以在不使用Applet的情况下获得Web浏览器的Java虚拟机?

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

    我们有一个古老的Java小程序,我们想把它推向一个新版本的Java(5或6),但是直到今天,我们一直支持使用Java VMS的人早于版本1.1(特别是那些仍然使用微软VM)的人。

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

    请回答以下任一问题(如有可能,请提供代码示例):

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

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

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

    我认为 deployment toolkit 可以做你想做的。

    使用部署Java中的RunApplet()函数确保在启动Applet之前在客户端机器上可用最小Java运行时环境。

        2
  •  1
  •   Johannes Weiss    15 年前

    Q1:没有

    问题2:是的,但我不知道它有多便携:

    <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    15 年前

    有一个部署工具包可以完成这类工作。

    服务小程序不应该太差。它可以是一个1x1像素的bug,也可以使用普通的小程序和一个小的1.1类,如果它可以加载1.5代码的话,就可以转发小程序的生命周期方法。

    任何人都不应该继续使用1.1。它已经有好几年没有修复安全漏洞了。

        4
  •  1
  •   mercator    15 年前

    这个脚本似乎在所有主要浏览器上都发挥了作用:

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