Итак, я делаю, вызывая java.exe и вызывая файл jar с некоторыми аргументами. Если все в порядке и команда работает, аргументы выводятся в поле расширенного текста.
Проблема в том, что команда неверна. Так, в одном случае, скажем, пользователь вводит неправильный пароль, который передается в txtPassword. Выход из Станадарда не перенаправляется. Если я запускаю точно такую же команду в консоли Dos, отображается сообщение «Ошибка: ошибка аутентификации». Как перенаправить эту ошибку в поле расширенного текста? Я думал, что перенаправление stdout сделает это, но, видимо, нет.
Любая помощь приветствуется. Пожалуйста, смотрите код ниже.
//Declare and instantiate a new process component.
System.Diagnostics.Process process1;
process1 = new System.Diagnostics.Process();
process1.StartInfo.UseShellExecute = false;
process1.StartInfo.RedirectStandardOutput = true;
process1.StartInfo.CreateNoWindow = true;
process1.StartInfo.FileName = "java.exe ";
toLoad = lstBarToLoad.Items[i].Text;
process1.StartInfo.Arguments = "-Xmx512M -jar Deploy.jar" + txtPassword;
process1.StartInfo.Arguments += toLoad;
Console.WriteLine(process1.StartInfo.Arguments);
process1.Start();
process1.OutputDataReceived += (s, a) => myMethod(a);
process1.BeginOutputReadLine();
//myMthod
private void myMethod(DataReceivedEventArgs e)
{
if (e.Data != null)
{
Action action = () => rchsdtOut.Text += "\r\n" + e.Data.ToString();
rchsdtOut.BeginInvoke(action, null);
Console.WriteLine(e.Data.ToString());
}
}//end of private