我在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的输出出现在运行我的应用程序的同一个控制台中。 我怎样才能做到这一点?也许还有另一种在当前控制台中运行命令的方法?或者也许我可以通过打开第二个控制台窗口并将其输出重定向到当前控制台?
答案 0 :(得分:2)
我不认为您可以在同一个控制台中运行,因为它被您的应用程序占用。如果它只是显示输出,您可以使用stream redirection。如果您执行javac [here go params] >out.txt 2>err.txt
,则可以在javac
完成后加载来自它们的输出。
您甚至可以通过ProcessStartInfo.RedirectStandardOutput和Process.StandardOutput
将流重定向到您的应用答案 1 :(得分:2)
我认为您不能在同一个控制台中运行,但您可以通过重定向标准来获取输出:
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()