JVM 8 退出代码 -559038737 (0xDEADBEEF)
2022-09-01 23:52:21
我的应用程序在升级到 Java 8 后开始非确定性失败。它不会引发异常或打印错误消息。其失败的唯一迹象是退出代码 -559038737。有人遇到过这种情况吗?
我的应用程序在升级到 Java 8 后开始非确定性失败。它不会引发异常或打印错误消息。其失败的唯一迹象是退出代码 -559038737。有人遇到过这种情况吗?
该退出代码可能来自Apache Commons Exec:
public interface Executor {
/** Invalid exit code. */
int INVALID_EXITVALUE = 0xdeadbeef;
...
Java 8 中的一些更改可能会引入错误。
但是,在不知道你的类路径和代码的情况下,这只是一个有根据的猜测。
也许你正在使用异步方式来使用Commons Exec:
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
Executor executor = new DefaultExecutor();
executor.execute(cmdLine, resultHandler);
int exitValue = resultHandler.waitFor();
return exitValue;
所以异常只捕获在 resultHandler 中,而不是自动在 stderr 上打印?