gpt4 book ai didi

java - Eclipse "Terminate/Disconnect All"行为

转载 作者:行者123 更新时间:2023-11-30 03:05:14 24 4
gpt4 key购买 nike

当我在 eclipse 中处理 Java 项目时,我右键单击控制台区域,并注意到“终止/全部断开连接”按钮已启用。我对此感到惊讶,因为我正在开发的应用程序是线程化的。起初我以为这意味着并非所有线程都终止了,但在设计过程中,我在组织上很细致。当然,我回去检查代码,看看是否有什么东西会导致其中一个线程挂起,但我没有找到太多关于这个问题的信息。

后来,我编写了一个小应用程序来尝试诊断这个问题,结果更加令人震惊。

public class termtest {
public static void main(String[] args){
System.out.println("Did I terminate?");
}
}

即使是这个微不足道的程序也需要通过“Terminate/Disconnect All”项来终止。

enter image description here

如何解释 eclipse 上的这种行为?

最佳答案

本例中的 Java 程序自行终止。 “main”方法运行完成并退出,这本身就会导致 JVM 进程终止。如果运行程序然后转到“调试” View ,您可以看到这一点。您会看到启动的“javaw[.exe]”子行显示“已终止”。这代表 JVM 已退出,即不再运行。您可以使用操作系统最喜欢的实用程序(例如 Windows 上的“ps”或“Process Explorer”)来验证测试程序是否没有“java[w]”进程,从而验证 JVM 是否已消失。

启动纯粹是内存中的 Eclipse 对象,它保留在“调试” View 中,以便用户仍然可以检查与启动关联的控制台页面。一般来说,用户仍然对输出感兴趣,特别是在程序自行终止的情况下,用户甚至不必在 Eclipse 中选择“终止”按钮。调试 View 中仍然存在启动,并且关联的控制台页面仍然存在,但 JVM 已退出并消失。

事实上,Eclipse 的菜单项(在“调试” View 的右键单击菜单中)在菜单项的文本中带有“终止...”,这是不幸的并且无可否认具有误导性,因为程序已经在此终止案件。无论启动是否处于运行状态,菜单项文本都不会改变。

为了摆脱启动,“调试” View 中有一个工具栏按钮。同样,要摆脱控制台页面,控制台 View 中有一个工具栏按钮。

关于java - Eclipse "Terminate/Disconnect All"行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34970750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com