gpt4 book ai didi

java - 到达 main 方法的末尾时程序不会终止

转载 作者:行者123 更新时间:2023-11-29 09:55:03 29 4
gpt4 key购买 nike

我有一个程序,我在启动它之前要求用户输入。

public static void main(String args[]) 
{
String database = JOptionPane.showInputDialog(new JFrame(), "Enter a DB:");
if(database!=null && database.foundInDB()) {
SPVerification spv = new SPVerification();
spv.setVisible(true);
}
//System.exit(1); Without it the program doesn't terminate although it's the end
// of the main function.
}

如果用户输入未找到的数据库,则不应执行该程序。

当我输入错误的 DB 名称时,if 语句下面的代码不会执行,所以我到达了 main 方法的末尾,但程序并没有终止,但是如果我添加system.exit(1)if 语句之后,程序终止。为什么我需要调用 System.exit(1),尽管我已经到达了 main 的末尾?

最佳答案

您正在显示一个 Swing 对话框,它启动了事件分派(dispatch)线程。这是一个非守护线程,因此会阻止程序退出。

对于普通的 Swing 应用程序,这正是您想要的:main() 应该做的就是收集任何配置信息并创建主框架。

您的问题的一个解决方案是将对话框代码包装在对 SwingUtilities.invokeAndWait() 的调用中.

关于java - 到达 main 方法的末尾时程序不会终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549887/

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