Java 退出代码和含义

Posted

技术标签:

【中文标题】Java 退出代码和含义【英文标题】:Java exit codes and meanings 【发布时间】:2011-06-23 12:38:18 【问题描述】:

是否有 java 进程终止的退出代码和含义列表? 因为我有一个退出代码 23,但我不知道它是什么(我无法更改日志以查看完整的堆栈跟踪,因为它位于不同的远程服务器中)。

我浏览了几个小时,找不到任何提及退出代码 23 的内容。

【问题讨论】:

这里为什么要使用 [proc] 标签? 另见***.com/questions/17671234/… 【参考方案1】:

在您的 Java 应用程序中,当您调用 System.exit(n); 时,Java 运行时环境会将 n 作为退出代码返回给操作系统。

数字的含义取决于您正在运行的程序 - 不是 Java 本身,而是您正在运行的程序会产生这个数字。没有标准数字。查看生成此退出代码的程序的文档以了解其含义。

【讨论】:

是的,如果你的程序曾经进入主函数。如果“找不到主类”,您将获得退出代码 1【参考方案2】:

退出代码 23 的含义没有定义。除了非零状态代码表示异常终止之外,退出代码对值表示的内容没有任何约定。零表示成功,但即便如此,它也完全取决于开发人员是否遵守这个“标准”。

【讨论】:

【参考方案3】:

在another question 中有一个指向带有JVM exit code explanations 的页面的链接。但是退出代码 23 似乎很神秘。

【讨论】:

【参考方案4】:

退出代码 23 可能表示“系统中打开的文件过多”

在某些 Linux 安装中,您只需运行 perror 23 即可进行查找。如果该命令不可用,您可以通过一个简单的 C 程序获得它:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv) 
    int e = 23;
    printf("%i: %s\n", e, strerror(e));
    return 0;

【讨论】:

【参考方案5】:

在 Eclipse RCP 中,退出代码 23 表示重新启动。但它只能在 IDE 下工作。

【讨论】:

以上是关于Java 退出代码和含义的主要内容,如果未能解决你的问题,请参考以下文章

JVM退出代码10的含义

docker-compose 退出代码的含义?

CL.exe 退出代码

Linux Shell Bash 带有特殊含义的退出码

JVM:如何定义 java 可执行文件的退出代码?

递归代码以退出代码 3221225477 退出