我升级到 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;
System.exit()
上看不到(某些)stderr
输出(或者stdout
)并不令人惊讶,因为输出缓冲区不会被刷新,或者在某些JVM上可能不会被刷新。 - Lawrence Dol
System.exit(0xDEADBEEF)
。 - Marko Topolnik