Java 主要方法赢得';不归

Java 主要方法赢得';不归,java,Java,java应用程序不退出的原因是什么? 最后一行代码打印一条消息,然后直到您按下停止按钮它才会退出 代码本身不连接任何其他线程;结束大括号前的最后一行代码是 System.out.println("ok"); System.out.println(“ok”); 它打印“ok”,然后就停止了。可能有什么东西正在创建一个新的非守护进程线程 如果在调试器中运行并“暂停”应用程序,则应看到仍在运行的各种线程 基本上,JVM只有在没有非守护进程线程的情况下才会终止。可能有什么东西正在创建一个新的非守护进程线

java应用程序不退出的原因是什么? 最后一行代码打印一条消息,然后直到您按下停止按钮它才会退出

代码本身不连接任何其他线程;结束大括号前的最后一行代码是

System.out.println("ok"); System.out.println(“ok”); 它打印“ok”,然后就停止了。

可能有什么东西正在创建一个新的非守护进程线程

如果在调试器中运行并“暂停”应用程序,则应看到仍在运行的各种线程

基本上,JVM只有在没有非守护进程线程的情况下才会终止。

可能有什么东西正在创建一个新的非守护进程线程

如果在调试器中运行并“暂停”应用程序,则应看到仍在运行的各种线程



基本上,JVM只有在没有非守护进程线程时才会终止。

Java应用程序在其主方法返回时不会停止。当调用
System.exit
或不再有非守护进程线程运行时,它将退出。因此,如果main方法启动Swing或AWT GUI,然后返回,则会启动事件调度线程,并且应用程序会继续运行。同样,如果它启动一个后台线程,而该线程不是守护进程,则后台线程将保持程序运行,直到调用System.exit。

Java应用程序在其主方法返回时不会停止。当调用
System.exit
或不再有非守护进程线程运行时,它将退出。因此,如果main方法启动Swing或AWT GUI,然后返回,则会启动事件调度线程,并且应用程序会继续运行。同样,如果它启动一个后台线程,而该线程不是守护进程,则后台线程将保持程序运行,直到调用System.exit。

非守护进程线程肯定是原因。即使没有显式创建一个,如果您正在启动AWT/Swing GUI,至少会自动创建事件调度线程。在这种情况下,使用
System.exit(value)
非守护进程线程肯定是原因。即使没有显式创建一个,如果您正在启动AWT/Swing GUI,至少会自动创建事件调度线程。在这种情况下,使用
System.exit(value)

显示代码并告诉我们如何运行它。到目前为止,这些信息都是无用的。代码相当复杂,我无法显示。这里的问题是代码不调用任何连接方法,所以问题是:“在一般情况下,原因是什么?”“代码相当复杂”。所以你的问题可以是任何问题。我认为,尤金的问题——从一个新的Java开发人员的角度来看——确实很有用,也可以在没有可用代码的情况下得到回答。该死,我把水晶球忘在家里了——其他人有水晶球吗?不那么,发布一个简化的示例(尽管创建一个示例的行为几乎肯定会发现错误),或者只是单步执行代码是我们唯一不能做的事情。我的意思是,我们可以猜测其中涉及到非守护进程线程,但这对显示代码和告诉我们如何运行它并没有特别的帮助。到目前为止,这些信息都是无用的。代码相当复杂,我无法显示。这里的问题是代码不调用任何连接方法,所以问题是:“在一般情况下,原因是什么?”“代码相当复杂”。所以你的问题可以是任何问题。我认为,尤金的问题——从一个新的Java开发人员的角度来看——确实很有用,也可以在没有可用代码的情况下得到回答。该死,我把水晶球忘在家里了——其他人有水晶球吗?不那么,发布一个简化的示例(尽管创建一个示例的行为几乎肯定会发现错误),或者只是单步执行代码是我们唯一不能做的事情。我的意思是,我们可以猜测其中涉及到非守护进程线程,但这并不是特别有用。谢谢你,Jon,你能提供一个代码片段,说明如何在java中创建非守护进程线程,以便主方法在该线程运行完成之前不会返回吗?新线程(someRunnablehichrunessly)。start()是一种方法,但对我来说还有很多其他的(计时器、执行器等),这是一项执行器服务。程序在调用executorService.shutdown()后退出。谢谢你,Jon,你能提供一个代码片段,说明如何在java中创建一个非守护进程线程,以便主方法在该线程运行完成之前不会返回吗?新线程(someRunnablehichRunndlessly)。start()是一种方法,但还有许多其他方法(计时器、执行器等)对我来说,这是一个ExecutorService。程序在调用ExecutorService.shutdown()后退出。噢,是的,可能是因为摇摆。所以我认为调用System.exit(0)是一种安全的方法?噢,是的,摇摆可能是原因。所以我认为调用System.exit(0)是一种安全的方法?