JAVA ProcessBuilderからいくつかのEXE(7za.exe、pg_basebackup.exe、...)を呼び出しています。 2〜3日間は問題なく動作しています(EXEは毎日呼び出されます)。その後、EXEは絶えずクラッシュしています。JavaのProcessBuilderから呼び出すときにEXEがクラッシュする
7za.exe error:
Exit code :: -1.073.741.502Windows 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();
スニペット。 メモリリークまたはOSレベルのエラーはありますか?お知らせ下さい。
ありがとうございます。
編集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サーバー2012 R2(64ビット)、Windows 7の(64ビット版)、Windowsの8(64ビット版)
あなたのパスは少し変わっているようです: 'EXEpath \ bin \ 7za.exe'?たぶんあなたはあなたが持ってはいけない場所に何かを誤って入力したかもしれません:-) – Ivonet
その場所は無視してください。それは実際の場所ではありません。 –
exesは手動で起動すると機能しますか? (ダブルクリックすることにより) – Asoub