我正在从 .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/