【问题标题】:Java Applet strange performance behaviour on latest JRE (7.55+)最新 JRE (7.55+) 上的 Java Applet 奇怪的性能行为
【发布时间】:2025-12-15 16:10:01
【问题描述】:

我们使用来自我们的签名提供者的一些专有小程序来签署一些 XML。当我们使用 JRE 6u37 小程序运行时没有问题 - 运行速度非常快而且从不死机。但是当我们将 JRE 更新到 7u55 或更高版本时,它开始经常挂起。只有浏览器重启帮助。有没有办法解决这个问题,可能是通过一些参数或其他东西?

这是运行代码:

<script>
    var attributes = {codebase:'#{request.contextPath}/distr',
                      code:'kz.softkey.iola.applet.MainApplet',
                      archive:'iolaApplet.jar',
                      type:'application/x-java-applet',
                      mayscript:'true',
                      id:'iolaApplet',
                      name:'iolaApplet',
                      width:1, height:1} ;
    var parameters = {code:'kz.softkey.iola.applet.MainApplet', 
                    codebase:'#{request.contextPath}/distr',
                    archive:'iolaApplet.jar',
                    cache_option:'Plugin',
                    cache_archive:'iolaApplet.jar',
                    mayscript:'true',
                    scriptable:'true',
                    fileExtension:'KEYSTORE',
                    cache_archive:'iolaApplet.jar',
                    java_arguments:'-Xmx300m',
                    writesoap:'false';
    var version = '1.6';
    deployJava.runApplet(attributes, parameters, version);
</script>

【问题讨论】:

    标签: java applet


    【解决方案1】:

    在版本 7 和 6 之间,jre 中的小程序实现有一些小的变化。当我的团队将一些旧项目从 6 迁移到 7 时,我发现了这一点,并且在少数情况下,当用户尝试修改内容时,小程序开始挂起。在我的情况下,更改是表如何处理 firePropertyChange,当用户更改单元格无限循环中的某些内容时。如果您无法访问来源,我认为您将无法检查导致您的案例出现问题的原因。

    //编辑

    我没有看到您在部署脚本中调用任何方法将数据从站点加载到小程序,因此我假设您应该能够像普通应用程序一样从 IDE 运行它。 如果你把一些数据序列化后发送到applet,你需要想办法在applet本地运行的时候把数据加载到applet上。 在我的例子中,我们使用自定义的数据序列化器,我们创建了一些用于测试的实用程序,我们将序列化的数据放在 txt 文件中并在本地运行小程序(从 IDE)。 这样就可以像调试任何其他应用程序一样调试小程序。 更改 jre 时调试小程序很困难,因为您通常不知道应用程序的流程何时出错。 在我的例子中,我们最终看到一个人坐在两个屏幕前,两个小程序在两个 Java 版本上运行,并逐行比较小程序的流程。 有一段时间他就这样坐着,我们发现了 Java 版本之间的小变化(我不记得确切,但我很确定这是一个“如果”发生了变化,这是我们问题的原因)。

    【讨论】: