代码之家  ›  专栏  ›  技术社区  ›  Exp HP

在.NET的当前命令窗口中启动进程

  •  2
  • Exp HP  · 技术社区  · 15 年前

    我把这个放在一个盒子里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 回复  |  直到 15 年前
        1
  •  2
  •   brendan    15 年前

    我不认为您可以在同一个控制台中运行,但是您可以通过重定向标准输出来获得输出:

    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
  •  2
  •   Andrey    15 年前

    我不认为您可以在同一个控制台中运行,因为它被您的应用程序占用了。如果只是为了展示你可以使用的输出 stream redirection javac [here go params] >out.txt 2>err.txt javac

    您甚至可以通过以下方式将流重定向到应用程序 ProcessStartInfo.RedirectStandardOutput Process.StandardOutput

    推荐文章