我有一个 java 应用程序,可以作为 JFrame 或小程序运行。
在浏览器中启动小程序会在浏览器中添加一个新选项卡,并且还会显示 Java 控制台。关闭它们之后,我希望能够重复此操作并看到 Java 控制台重新出现。 它不会重新出现,但我可以在浏览器中重新加载我的小程序。
每次我都必须杀死这个由firefox启动的僵尸java
解释器进程。
/usr/lib/jvm/java-6-sun-1.6.0.26/jre/bin/java -D__jvm_launched=22906841394 -Xbootclasspath/a:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/deploy.jar:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/javaws.jar:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/plugin.jar -Djava.class.path=/usr/lib/jvm/java-6-sun-1.6.0.26/jre/classes -Dsun.awt.warmup=true sun.plugin2.main.client.PluginMain write_pipe_name=/tmp/.com.sun.deploy.net.socket.1444.1704699298565364673.AF_UNIX
终止进程后,Java 控制台将重新出现。还尝试了使用 chromium 的重现步骤,除了僵尸进程的命令行不同之外,结果相同。
注意事项:
- 当我关闭包含小程序的浏览器选项卡时,小程序处于正常状态,等待用户在 UI 上执行操作。
- 在小程序重新启动之间完全关闭浏览器也可以解决该问题,因为
java
进程是浏览器进程的子进程。
有人有解释或解决方法吗?谢谢!
最佳答案
Anyone has an explanation or workaround?
要解决此问题,请在小程序查看器中进行测试。 (控制台与生产无关,除非设计有很大缺陷。)
至于解释,浏览器将在需要时结束 JRE/控制台。开发者或小程序不能覆盖它。我注意到,离开小程序页面后,FF 通常会让 JRE 运行 30-60 秒(根据控制台消失的时间来判断)。
关于java - 启动小程序后,僵尸 java 解释器会阻止 java 控制台在重新启动时重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696729/