0

如果我用Java编写了一个程序,我怎么知道我的程序是正常终止还是正常退出

4

2 回答 2

2

我在这里猜测了一下,因为你的问题有点含糊。但是我假设您谈论的是在您的程序中找出该程序在上次运行时是否正常终止。

如果你有一些配置目录或文件——在程序启动时在此处留下注释,并在进程正常退出时删除该注释。如果您的程序启动时该注释仍然存在,那么另一个实例仍在运行(您需要单独检查)或者它没有正常终止。

于 2010-03-15T10:30:32.893 回答
0

JVM 在程序终止时返回一个整数退出代码,其中 0 表示程序正确终止,非零值通常表示错误情况。

如果你的程序正常结束(即main方法没有抛出异常就返回了),那么JVM会返回0,否则,如果抛出异常并且没有被捕获,那么JVM会返回一个非零的错误码。

您也可以通过该System.exit(int)方法自己设置错误代码。这会导致 JVM 立即终止并返回指定的错误代码。

假设您在基于 Windows 的机器上,您可以看到通过回显%ERRORLEVEL%属性返回的错误代码。

例如,假设您有一个 Main 类,您可以看到如下错误代码:

C:\>java Main

C:\>echo %ERRORLEVEL%
0

如果您随后将 main 更改为 call System.exit(1),则错误级别将如下所示:

C:\>echo %ERRORLEVEL%
1
于 2010-03-15T10:48:52.533 回答