我们有一个C#应用程序,用于启动流程。该进程在.bat文件上运行bash,而.bat文件启动一个jar文件。
我想出了如何通过以下代码使.bat文件将其输出记录到日志文件中:
Process process = new Process();
process.StartInfo.FileName = batFile;
process.StartInfo.Arguments = jarArguments;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.ErrorDialog = false;
process.Start();
while (!process.StandardOutput.EndOfStream)
{
log.Debug(process.StandardOutput.ReadLine());
}
process.WaitForExit();
我现在的问题是我无法从jar文件获取输出。如果我允许bash进程创建一个新窗口( process.StartInfo.CreateNoWindow = false ),则可以看到jar文件的输出。但是,如果我不创建新窗口,则Java jar的输出不会重定向到我的日志文件中。我的问题: