Запуск процесса в текущем командном окне в .NET - PullRequest
2 голосов
/ 22 сентября 2010

У меня есть это в консольном приложении VB.NET:

Dim p As ProcessStartInfo
p = New ProcessStartInfo(Environment.CurrentDirectory & "\bin\javac.exe",ClassName & ".java")
Dim ps As Process = Process.Start(p)

Это запускает компилятор java для файла, но делает это в новом окне .Я хочу, чтобы выходные данные из javac отображались в той же консоли, где запущено мое приложение.Как я могу это сделать?Возможно, есть другой способ запуска команд в текущей консоли?Или, может быть, я могу отключить открытие второго окна консоли и перенаправить его вывод на текущую консоль?

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Я не думаю, что вы можете работать в той же консоли, но вы можете получить вывод, перенаправив стандарт:

Dim si = New ProcessStartInfo(Environment.CurrentDirectory & "\bin\javac.exe",ClassName & ".java")

si.RedirectStandardOutput = True
si.UseShellExecute = False
Dim proc = New Process() 
proc.StartInfo = si
proc.Start()
proc.StandardOutput.ReadToEnd()
proc.WaitForExit()
2 голосов
/ 22 сентября 2010

Я не думаю, что вы можете работать в той же консоли, потому что она занята вашим приложением. Если вы хотите показать вывод, вы можете использовать перенаправление потока . Если вы сделаете javac [here go params] >out.txt 2>err.txt, вы сможете позже загрузить выходы из них, когда javac закончится.

Вы даже можете перенаправить потоки в ваше приложение с помощью ProcessStartInfo.RedirectStandardOutput и Process.StandardOutput

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...