gpt4 book ai didi

java - main() 方法的 Java 应用程序退出代码究竟如何工作?

转载 作者:太空狗 更新时间:2023-10-29 22:43:31 25 4
gpt4 key购买 nike

我对一个简单的命令行 Java 应用程序有以下疑问。

所以我有这个命令行应用程序,它由 Main 类中定义的 main() 方法启动。像往常一样,这个 main() 方法是用这个签名定义的:

public static void main(String[] args) {

它的返回类型是void,这应该意味着它不返回任何值。但是当它的执行正确终止时,我在 IntelliJ 控制台中收到以下消息。

Disconnected from the target VM, address: '127.0.0.1:54090', transport: 'socket'

Process finished with exit code 0

退出代码 0 到底代表什么?我认为这意味着程序已经正确地完成了它的执行,没有产生任何错误。

所以现在我有以下2个疑惑:

  1. 如果是真的,为什么我的 main() 方法返回 void 会发生这种情况?

  2. 如果我的应用程序以错误结束,我该如何返回不同的退出代码?

是否有以错误结束的标准退出代码值?

最佳答案

虚拟机退出时

  • 所有非守护线程都停止运行,或者
  • System.exit(exitCode) 被调用

在第一种情况下,退出代码为 0。在第二种情况下,它是传递给 exit() 方法的退出代码。

不要忘记,即使您的 main() 方法返回,程序仍会继续运行,直到不再有非守护线程运行为止。 VM 中运行的任何线程都可以选择显式退出。

退出代码 0 意味着一切都按预期进行。您可以选择使用任何其他退出代码来向环境发出异常情况信号。

关于java - main() 方法的 Java 应用程序退出代码究竟如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28738307/

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