Java Applet部署到多个JRE

时间:2014-07-02 08:01:37

标签: java deployment applet

伙计,

我遇到了以下挑战,我想将一个依赖Java 1.8语法的Applet部署到数百个已经运行依赖Java 1.5的旧Java Applet的客户端工作站上

问题是,我无法访问Java 1.5 Applet代码,甚至无法访问它的启动器Html页面。唉,这个启动器Html页面依赖于Applet标签,因此会尝试加载工作站上安装的最新Java插件版本。 我不想依赖任何虚拟化解决方案,我必须作为Java Applet运行,如果你觉得它会有所帮助,也许可以考虑使用Web Start。

我的问题是: 是否有本地工作站配置/ hack告诉浏览器在呈现Applet标记时加载特定(旧)Java版本? 否则,有没有办法使用Java Web Start来解决这个问题,并以某种方式运行我的新Java Applet而不更新"官方"工作站Java插件版本?

1 个答案:

答案 0 :(得分:0)

好的,你问几个问题,这里有一些答案:

  1. 使用" lower"运行Java 1.8代码是不可能的。 JRE / JDK如1.7,1.6或1.5。然而,另一种方法是可能的 - 您可以使用Java 1.8来运行java 1.5 applet ...
  2. 您不需要破解您的工作站 - 如果您只安装一个java版本(即使它是较旧版本)并且已正确安装/配置该版本将用于启动您的applet
  3. 使用下一代插件(自6u10以来引入),可以使用jnlp文件启动applet。 jnlp syntax允许您指定特定的Java版本,如果没有安装,则可以/可以下载。一个例子是:

    < j2se version =" 1.6.0_10" HREF =" HTTP://java.sun.com/products/autodl/j2se" />

  4. 如果我没有完全理解你,请纠正我:

    你想要两个小程序都运行,对吗? 要做到这一点,你必须在某些时候改变一些东西。可能性(我的回答忽视安全性 - 从这个角度来看总是使用最新的java版本):

    1. 安装最新的Java 1.8并签署旧的applet。签署applet并不需要源代码 - 只需访问您的网页,运行applet,然后在java缓存中搜索applet.jar。使用官方证书对其进行签名并将其部署在您的服务器上。 (此外,这可能还需要添加一些Manifest属性)
    2. 将您的新applet降级为java 1.7或1.6并安装较旧的Java,如1.7.0_17。 Until Java 1.7.0_21签署不是强制性的。如果您看到Java 6的baseline,它将是版本1.6.0_43。
    3. 从理论上讲,您可以使用jnlp来定义应该用于运行applet的精确java版本。问题是,它是从1.6.0_10开始引入的 - 因此你的1.5 java是不够的。如果可以使用稍微更新的java运行您的旧applet并将jnlp文件添加到您的网页,那么它可以工作。为此你需要:安装两个较新的java版本:一个1.6.0_10或更高版本(直到1.6.0_43,或1.7_17)和最新的1.8.0_X。然后在jnlp文件中定义你的精确1.6 / 1.7 java。访问您的网页时,将启动1.8插件,该插件检测到需要较旧的Java版本,然后将启动旧版本。对于您的新applet,将使用最新的Java ...