我们可以禁用JVM HeartBeat还是阻止它杀死我的applet

时间:2012-03-22 18:56:20

标签: java plugins applet

我的小程序意外终止。从日志中,我可以看到

JVM心跳...死了,发送ts:654648165466,现在ts:654658163729,dT 9998263

我有一个关闭钩子,看看是谁杀了applet&我得到了以下

stack Trace ......... Thread [Java Plug-In Heartbeat Thread,5,main]

java.lang.Object.wait(Native Method)
java.lang.Thread.join(Unknown Source)
java.lang.Thread.join(Unknown Source)
java.lang.ApplicationShutdownHooks.runHooks(Unknown Source)
java.lang.ApplicationShutdownHooks$1.run(Unknown Source)
java.lang.Shutdown.runHooks(Unknown Source)
java.lang.Shutdown.sequence(Unknown Source)
java.lang.Shutdown.exit(Unknown Source)
java.lang.Runtime.exit(Unknown Source)
java.lang.System.exit(Unknown Source)
sun.plugin2.main.client.PluginMain.exit(Unknown Source)
sun.plugin2.main.client.PluginMain.access$1300(Unknown Source)
sun.plugin2.main.client.PluginMain$HeartbeatThread.run(Unknown Source)

我不明白为什么heartbeat Thread在这里工作。我没有多个jvms&它是单个小程序,没有任何套接字通信。只有数据传输到服务器是通过http

1 个答案:

答案 0 :(得分:0)

从PluginMain的源代码

看起来我们可以通过将环境变量JPI_PLUGIN2_NO_HEARTBEAT设置为某个值来阻止HeartBeatThread启动

http://www.javasourcecode.org/html/open-source/jdk/jdk-6u23/sun/plugin2/main/client/PluginMain.java.html