如何处理重定向输出到System.String [英] How to redirect process output to System.String

查看:212
本文介绍了如何处理重定向输出到System.String的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我打电话从.NET应用程序的Java程序,我需要重定向控制台输出 到System.String要做些以后解析。请指教。我想AP preciate短code的例子。

 公共BOOL RunJava(字符串文件名)
{
    尝试
    {
        的ProcessStartInfo磅=新的ProcessStartInfo();
        psi.CreateNoWindow = TRUE;
        psi.UseShellExecute = FALSE;
        psi.EnvironmentVariables.Add(VARIABLE1,1);
        psi.FileName =JAVA.EXE;
        psi.Arguments =-Xmx256m jar.name;

        的Process.Start(psi)的;
        返回true;
    }
    赶上(例外前)
    {
        返回false;
    }
}
 

解决方案

一个更好的方法是创建一个进程实例,并获取使用这样的数据流的输出:

 过程CMD =新的Process();
cmd.StartInfo.FileName =JAVA.EXE;
cmd.StartInfo.Arguments =-Xmx256m jar.name;
cmd.StartInfo.UseShellExecute = FALSE;
cmd.StartInfo.CreateNoWindow = TRUE;
cmd.StartInfo.RedirectStandardOutput =真;
cmd.StartInfo.EnvironmentVariables.Add(VARIABLE1,1);
cmd.Start();

StreamReader的SR = cmd.StandardOutput;
字符串输出= sr.ReadToEnd();
cmd.WaitForExit();
 

I am calling Java process from .NET application and I need to redirect console output to System.String to do some later parsing. Please advice. I would appreciate short code example.

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;
    }
}

解决方案

A better way will be to create a Process instance and capture the output using a stream like this:

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();

这篇关于如何处理重定向输出到System.String的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆