java - 从 Java 中的 ProcessBuilder 调用时 EXE 崩溃

标签 java windows exe processbuilder

我正在从 JAVA ProcessBuilder 调用一些 EXE(7za.exe、pg_basebackup.exe、...)。它可以正常工作 2 或 3 天(每天都会调用 EXE)。之后 EXE 不断崩溃。

7za.exe error:
Exit code :: -1.073.741.502

Windows Event log error:
Faulting application name: 7za.exe, version: 9.20.0.0, time stamp: 0x4ce553f5 Faulting module name: KERNELBASE.dll, version: 6.2.9200.21941, time stamp: 0x5792e533
Exception code: 0xc0000142
Fault offset: 0x000683ba
Faulting process id: 0x10bc
Faulting application start time: 0x01d2cebdff3bb05a
Faulting application path: EXEpath\bin\7za.exe
Faulting module path: KERNELBASE.dll
Report Id: 3d27046a-3ab1-11e7-93fe-00505680156e
Faulting package full name:
Faulting package-relative application ID:

代码片段

File workingDir = new File(workingDirectory);
ProcessBuilder pb = new ProcessBuilder(argumentsList);
pb.redirectErrorStream(true);
pb.directory(workingDir);        
Process process = pb.start();
BufferedReader commandOutput = new BufferedReader(new 
InputStreamReader(process.getInputStream()));
String s = null;
while ((s = commandOutput.readLine()) != null) {
    print(s);
}
int exitCode = process.exitValue();

此外,并非所有运行此代码的机器都会发生这种情况。 是内存泄漏还是操作系统级别的错误?请指教。

提前致谢。

编辑 1: c# 中的同类错误。它还包含修复程序。
https://social.msdn.microsoft.com/Forums/vstudio/en-US/cb9a15ed-4401-47f1-8c78-0c63c3da677d/process-returns-0xc0000142-when-started-from-a-windows-service-prividing-the-credentials?forum=clr
java中如何实现?

编辑 2: Java 作为服务运行(使用 wrapper )
Java 版本:1.0.051
Windows 版本:Windows Server 2012 和 R2(64 位)、Windows 7(64 位)、Windows 8(64 位)

最佳答案

因此,我同意上面的评论,要求提供更多详细信息以确定此问题的根本原因(问题发生时的进程数、实例的指标等)。一般来说,如果可以避免的话,我认为从 Java 调用可执行文件是一种反模式。在这种情况下,我建议您尝试用类似 7-zip binding 的内容替换对可执行文件的调用。 .

这应该可以让您更好地了解底层流程的执行情况,并将流程的所有权和管理转移到 JVM 下。

关于java - 从 Java 中的 ProcessBuilder 调用时 EXE 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47754029/

相关文章:

java - 在java中创建一个堆栈

c# - 64 位操作系统和 32 位应用程序

python - 执行嵌入在 Python 脚本中的 .exe 文件

java - 如何为 izpack 安装程序 .jar 文件制作 .exe 文件

java - boolean 表达式中的空字符串

java - 设置布局背景时,共享元素转换将无法正常工作

windows - 不区分大小写的文件系统上的区分大小写的文件困扰着存储库

Python .exe 文件打开命令窗口

java - 简单的 Spring REST 服务不起作用

windows - 批量 ERRORLEVEL ping 响应