我们公司有几个应用程序通过来自不同外部供应商的 Java 小程序运行。我们的问题是:app1 只能在 JRE 1.6.05 上运行,而 app2 需要 1.6.16。有没有办法指定哪个小程序使用哪个 JRE,而不是为所有小程序(以及所有用户)只选择一个 JRE?我不认为我们应该为所有用户强制使用一个 JRE,因为任何这些供应商都一样,因为即使我们找到了解决方案,其中一个供应商也会在某个时候发布新的补丁,从而重新开始整个周期。
答案1
这种依赖不兼容问题正是应用程序虚拟化擅长解决的问题之一。
使用应用程序虚拟化,您可以将每个困难的应用程序及其特定版本的 JVM 打包到机器上的一个虚拟“气泡”中,在这个气泡中它甚至不会看到其他虚拟化应用程序在自己的隔离气泡中安装了自己的 JVM 版本。
应用程序虚拟化由 Microsoft 的 App-V (以前称为 Softgrid)、Symantec/Altiris 的软件虚拟化解决方案 (SVS)、Citrix XenApp 或 VMWare ThinApp 等系统提供。
答案2
另一个问题是,安全漏洞被广泛利用,继续运行过时的 Java 小程序具有很高的风险。
解决方案是停止使用客户端 Java、禁止具有管理员权限的用户访问互联网或部署某种安全设备/代理。
答案3
在 6u10 之前,PlugIn JVM 在浏览器内部运行。每个进程只能有一个 JVM 实例,因此使用不同版本的小程序无法运行。从 6u10 开始,小程序在不同的进程中运行。有了多个外部进程,就可以选择小程序的版本。这些信息可以在 Sun 网站上找到...