使用进程标准输出(VB.NET)无法获取java版本

时间:2014-11-04 08:21:51

标签: java .net vb.net process output

我需要获得java版本,所以我需要带参数“-version”

的java进程

它适用于cmd,不适用于此代码。 并且,它可以很好地创建java进程。但我无法得到输出。

我需要解决这个问题?

    Dim JavaProc As New Process()
    Dim JavaProcInfo As New ProcessStartInfo("java", "-version")

    With JavaProcInfo
        .UseShellExecute = False
        .RedirectStandardOutput = True
    End With

    With JavaProc
        .StartInfo = JavaProcInfo
        .Start()
    End With

    Dim sOutput As String
    Using sReader As System.IO.StreamReader = JavaProc.StandardOutput
        sOutput = sReader.ReadToEnd()
    End Using

    MsgBox(sOutput)

1 个答案:

答案 0 :(得分:0)

该版本位于StandardError流上。下面是修改后的代码块;请注意,需要重定向StandardError流。

Dim JavaProc As New Process()
Dim JavaProcInfo As New ProcessStartInfo("java", "-version")

With JavaProcInfo
    .UseShellExecute = False
    .RedirectStandardError = True
End With

With JavaProc
    .StartInfo = JavaProcInfo
    .Start()
End With

Dim sOutput As String
Using sReader As System.IO.StreamReader = JavaProc.StandardError
    sOutput = sReader.ReadToEnd()
End Using

MsgBox(sOutput)