プロセスを使用して、「-version」コマンドラインパラメータを使用してインストールされたJavaのバージョンを確認しようとしています。ただし、Javaアプリケーションから出力されたコマンドラインを読み取ろうとすると、null値が返されます。
私のコードはかなり単純です:
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();
小さくて簡単なものかもしれませんが、見えません。