我接手维护一个旧的 Web 应用程序,其中在同一网页中嵌入了多个 applet。这之前都很正常,但是自从引入 Next Generation Java 插件(约为 1.6.0_10)以来,单个 applet 不能保证在同一 JVM 实例中加载。如果它们在不同的 JVM 中加载,它们就无法通过 AppletContext.getApplets() 或静态变量进行通信。
有没有办法强制 applet 在同一个 JVM 实例中加载?我看到有人提到一个解决方法,即指定相同的 "java_arguments" 参数可能会鼓励 Java 插件在同一个 JVM 实例中运行 applet,但这对我们的应用程序无效(而且在任何情况下也没有得到 Oracle 的官方支持,因此可能随时消失)。
我们还尝试用间接的 applet-to-JavaScript-to-applet 通信替换直接的 applet-to-applet 通信,但由于我们的客户使用旧版的 web 浏览器,无法使用这种方法。如果有可能,我很想避免将所有本地 applet-to-applet 通信路由到非本地服务器上。
有没有办法强制 applet 在同一个 JVM 实例中加载?我看到有人提到一个解决方法,即指定相同的 "java_arguments" 参数可能会鼓励 Java 插件在同一个 JVM 实例中运行 applet,但这对我们的应用程序无效(而且在任何情况下也没有得到 Oracle 的官方支持,因此可能随时消失)。
我们还尝试用间接的 applet-to-JavaScript-to-applet 通信替换直接的 applet-to-applet 通信,但由于我们的客户使用旧版的 web 浏览器,无法使用这种方法。如果有可能,我很想避免将所有本地 applet-to-applet 通信路由到非本地服务器上。