java - 什么可能导致Java返回后继续运行

标签 java jvm freeze

当我进行一些特殊的 GUI 交互时,我遇到了这个问题。 这是我的情况:我使用一个对话框。我不打电话
System.exit() 但稍后返回并离开应用程序。 通常,当 JVM 发现不再存在时,它就会存在。 非守护线程正在运行。但使用这个对话框后, 它不起作用。

我 100% 确信在对话框中调用了 dispose() 有问题以及应用程序的主框架。 我在 IDE 中和运行时都得到了这个 命令行。我可以通过按一下按钮来杀死它 IDE,或从命令行使用 Ctrl-C。

但是如果 JVM 正确终止当然会更好 在交付应用程序之前自行处理。

任何线索,这是一个已知问题吗?我使用的是 JDK 1.7,但是 问题已在 JDK 1.6 中出现。

最诚挚的问候

附注:刚刚阅读: http://download.oracle.com/javase/1.4.2/docs/api/java/awt/doc-files/AWTThreadIssues.html 过去也曾出现过类似的问题。也许这是一个新问题。 过去的问题是: 其他包可以根据内部需要创建可显示的组件,并且永远不会使它们不可显示。请参阅4515058 , 4671025 ,和4465537 。 我将尝试沿着弹出菜单的显式 setVisible(false) 进行一些尝试。

最佳答案

您确定弹出窗口已被销毁而不仅仅是隐藏吗?我相信默认操作是隐藏,将默认关闭操作设置为 JFRAME.EXIT_ON_CLOSE 可能会解决这个问题。

诊断问题的另一种方法可能是使用分析器,例如 Netbeans 附带的分析器。在应用程序终止之前使用实时 View 和调试点,您可以检查实时对象。

关于java - 什么可能导致Java返回后继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570391/

相关文章:

添加断点时 Eclipse 卡住

Python 多处理 block 在 waiter.acquire() 中不确定

java - 为什么有线程安全收集的要求?

java - 系统升级后jvm崩溃

groovy - groovy 是 JVM 原生的还是移植到 JVM 的?

Postgresql - 为什么 DROP VIEW 命令挂起?

java - 使用 Java 8 流过滤内部 Map 的值

java - 多线程访问LinkedList时的线程安全

Java超时一组指令

if-statement - 是否可以使用 if 和 while 将所有控制流图翻译回来?