最新 JRE (7.55+) 上的 Java Applet 奇怪的性能行为

标签 java applet

我们使用来 self 们的签名提供商的一些专有小程序来签署一些 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>

最佳答案

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

//编辑

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

关于最新 JRE (7.55+) 上的 Java Applet 奇怪的性能行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24160108/

相关文章:

JAVA程序求最大质因数,但输出错误?

java - Hibernate JPA 删除分离对象时没有异常

java 小程序 ExceptionInInitializerError

java - 绕过警报 "Do you want to run this application"

java - 如何在recyclerView的开始和结束处设置可滚动的空白

java - 如何以编程方式将电子邮件打印为 pdf

java - 如何使用 java 代码在 android 中锁定文件?

swing - Scala 小程序 - SimpleApplet 演示

java - 通过 JavaScript 调用小程序方法将不起作用

java - Java 小程序的焦点