我正在尝试使用Process来检查使用“-version”命令行参数安装的 Java 版本。但是,当我尝试从 java 应用程序读取命令行输出时,我得到一个空值。
我的代码相当简单:
Process java = new Process();
java.StartInfo.RedirectStandardOutput = true;
java.StartInfo.CreateNoWindow = true;
java.StartInfo.UseShellExecute = false;
java.StartInfo.FileName = "java";
java.StartInfo.Arguments = "-version";
java.Start();
// version comes out null
string version = java.StandardOutput.ReadLine();
// There are probably better ways to extract this data but
// I want to get it working before I cross that bridge.
string versionNumber = version.Substring(16, 1);
hasJava = int.Parse(versionNumber) < 7;
java.Close();
这可能是一件小而容易的事情,但我看不到它。