main函数不返回任何内容。为什么?

游戏结束 :

对于C / C ++,main()必须始终返回一个整数(零表示成功,非零表示失败)。我可以理解,因为程序正在运行,它成为一个进程,并且每个进程都应该具有退出状态,这是通过执行echo $?获得的。该过程结束后从外壳程序中删除。

现在我不明白为什么main方法在Java中不返回任何内容?它与程序在JVM上运行并且JVM进程可用于返回退出状态有关吗?

请澄清。

谢谢你,
罗杰

安德烈亚斯·多克(Andreas Dolk):

如果单线程Java应用程序的main方法终止,则该应用程序将以退出代码0终止。如果您需要另一个退出代码(可能表示错误),则可以放置

System.exit(yourNumberHere);

代码中的任何位置(尤其是在main方法之外)。

这与多线程应用程序不同,在多线程应用程序中 ,您要么必须 System.exit 从内部 使用 kill -9 外部就停止JVM。

这是一个简单的示例,其中终止main不会停止应用程序(典型的服务或守护程序行为):

public static void main(String args[]) {  
  Thread iWillSurvive = new Thread(new Runnable() {
    public void run() {
      while(true) {
        // heat the CPU
      }
    }
  });
  iWillSurvive.start();
}

备注:当然,线程将在其run方法(或在主线程的情况下为main方法)终止时终止。在这种情况下,当所有线程都终止时,JVM将以退出代码0终止(这使我们回到了最初的问题)。希望大家现在都开心。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的内部联接查询不返回任何内容?

为什么此处理程序不返回任何内容?

为什么python在计算后不返回任何内容?

为什么.map()不返回任何内容?

为什么套接字中的recv()函数不返回任何内容?

为什么我的异步函数不返回任何结果?

为什么Swift的类型检查系统允许返回类型的函数不返回任何内容?

Ajax请求不返回任何内容。为什么?

为什么此提取请求不返回任何内容

为什么PIG FILTER不返回任何内容?

为什么OpenGL方法不返回任何内容?

为什么调用存储过程不返回任何内容?

Mongoose.findOne不返回任何内容,为什么?

为什么我的递归二进制搜索函数不返回任何内容?

复制分配函数不返回任何内容时,为什么编译器不引发错误?

为什么scanf()总是不返回任何内容?

为什么main函数总是必须始终返回某些内容?

为什么mycourses [i] .getGrade()不返回任何内容(C ++)?

如果javascript中的函数不返回任何内容,为什么?

为什么 dask 在 CUDA 函数上不返回任何内容?

为什么 main() 不返回任何值?

为什么我的 for 循环不返回任何内容?

FutureBuilder 快照数据不返回任何内容,为什么?

为什么在搜索存在的类时不返回任何内容?

为什么输入函数不返回任何东西?

为什么我的填充函数不返回任何值?

为什么 .map 函数在反应中不返回任何内容

为什么类中的函数不返回任何内容?

为什么我的路径函数不返回任何图像