【问题标题】:Java Applet deployment to multiple JREJava Applet 部署到多个 JRE
【发布时间】:2014-07-02 08:01:37
【问题描述】:

伙计们,

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

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

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

【问题讨论】:

  • 为什么要使用旧的 JRE?旧的小程序将与新的 JRE 完美运行。 (显然这对于​​新的小程序和旧的 JRE 是不正确的)。
  • 因为旧的 Applet 未签名,并且与较新的 Java 版本设置的新安全标准不兼容。

标签: java deployment applet


【解决方案1】:

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

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

一些一般的想法,如果我不完全理解你,请纠正我:

您希望两个小程序都运行,对吗? 为此,您必须在某些时候进行更改。可能性(我的回答无视安全性 - 从这个角度来看,始终使用最新的 java 版本):

  1. 安装最新的 Java 1.8 并签署您的旧小程序。签署小程序不需要源代码 - 只需访问您的网页,运行小程序,然后在 java 缓存中搜索 applet.jar。使用官方证书对其进行签名并将其部署在您的服务器上。 (此外,这可能还需要添加一些 Manifest 属性)
  2. 将您的新小程序降级到 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 定义一个准确的 java 版本,用于运行 applet。问题是,它是从 1.6.0_10 开始引入的——因此你的 1.5 java 是不够的。如果可以使用稍新的 java 运行您的旧小程序,并将 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 版本,然后将启动较旧的版本。对于您较新的小程序,将使用最新的 java...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多