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