c# - 如何将进程输出重定向到 System.String

标签 c# .net process console response.redirect

我正在从 .NET 应用程序调用 Java 进程,我需要重定向控制台输出 到 System.String 做一些稍后的解析。请指教。我将不胜感激简短的代码示例。

public bool RunJava(string fileName)
{
    try
    {
        ProcessStartInfo psi = new ProcessStartInfo();
        psi.CreateNoWindow = true;
        psi.UseShellExecute = false;
        psi.EnvironmentVariables.Add("VARIABLE1", "1");
        psi.FileName = "JAVA.exe";
        psi.Arguments = "-Xmx256m jar.name";

        Process.Start(psi);
        return true;
    }
    catch (Exception ex)
    {
        return false;
    }
}

最佳答案

更好的方法是创建一个 Process 实例并使用如下流捕获输出:

Process cmd = new Process();
cmd.StartInfo.FileName = "JAVA.exe";
cmd.StartInfo.Arguments = "-Xmx256m jar.name";
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.EnvironmentVariables.Add("VARIABLE1", "1");
cmd.Start();

StreamReader sr = cmd.StandardOutput;
string output = sr.ReadToEnd();
cmd.WaitForExit();

关于c# - 如何将进程输出重定向到 System.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3829749/

相关文章:

C# webBrowser控件如何获取鼠标指针下的数据

java - 媒体转换库

使用 fork() 创建进程树,然后对它们进行编号并将其显示在数组中

node.js - NodeJS - 管道多个 FFMPEG 进程

linux - linux 内核中的 clone() 系统调用定义在哪里?

c# - 如何在 Xamarin.Forms 中单击按钮时从 map 中删除多段线

c# - 在数组中添加新字节并移动其余字节

c# - PictureBox 调整大小和绘画问题

android - 从 Android 的 .NET WebService 中保存字节

c# - 目录刷新期间遇到错误,未使用新的 dll