JNAとcreateProcessWを使用するときにプロセス出力を取得する方法
-
29-10-2019 - |
質問
CreateProcessWで作成したプロセスから標準/ERRを読む方法を見つけようとしています。私はドキュメントを見て、このリストをグーグルで検索して検索しましたが、まだ良いポインター/サンプルが見つかりませんでした:)
これが私がこれまでに思いついたものです(それはWindowsで正常に動作しています、それは私のJavaコードからの関連するスニペットです):
Kernel32 kernel32 = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
Kernel32.StartupInfo startupInfo = new Kernel32.StartupInfo();
Kernel32.ProcessInfo processInformation = new Kernel32.ProcessInfo();
if (!kernel32.CreateProcessW(null, new WString(command), null, null, false,
DETACHED_PROCESS, null, new WString(dir.getAbsolutePath()), startupInfo,
processInformation)) {
throw new IOException("Could not start process. Errno: " +
kernel32.GetLastError());
}
kernel32.CloseHandle(processInformation.hProcess);
kernel32.CloseHandle(processInformation.hThread);
それで...どうすればそのプロセスから出力をつかむことができますか?誰かがすでにそれをして、サンプルを共有していることを気にしていますか?
事前に助けてくれてありがとう。
正しい解決策はありません
所属していません StackOverflow