我的应用程序在升级到Java 8后已经开始非确定性地失败。它不会抛出异常或打印错误消息。失败的唯一标志是退出代码-559038737。有没有人遇到过这个?
答案 0 :(得分:3)
退出代码可能来自Apache Commons Exec:
public interface Executor {
/** Invalid exit code. */
int INVALID_EXITVALUE = 0xdeadbeef;
...
Java 8中有一些changes可能引入了一个错误。
但是如果不知道你的类路径和代码,这只是一个有根据的猜测。
也许您正在使用异步方式来使用Commons Exec:
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
Executor executor = new DefaultExecutor();
executor.execute(cmdLine, resultHandler);
int exitValue = resultHandler.waitFor();
return exitValue;
所以异常只在resultHandler中捕获,而不是自动在stderr上打印?