private static string FindJava()

in Bootstrap/Bootstrap.cs [197:243]


        private static string FindJava(string java)
        {
            // See if "java" is already in path and working.
            if (java == null)
            {
                java = "java";
            }

            Process proc = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = java,
                    Arguments = "-version",
                    UseShellExecute = false
                }
            };
            try
            {
                proc.Start();
                proc.WaitForExit();
                return java;
            }
            catch (Exception ex)
            {
            }
            //TODO find away to read from registery on different OSs
            // Failing that, look in the registry.
            //bool hasRegistry = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
            //foreach (var view in new [] { RegistryView.Registry64, RegistryView.Registry32 })
            //{
            //    var localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, view);
            //    var javaRootKey = localKey.OpenSubKey(@"SOFTWARE\JavaSoft\Java Runtime Environment");
            //    foreach (var jreKeyName in javaRootKey.GetSubKeyNames())
            //    {
            //        var jreKey = javaRootKey.OpenSubKey(jreKeyName);
            //        var javaHome = jreKey.GetValue("JavaHome") as string;
            //        var javaExe = Path.Combine(javaHome, "bin", "java.exe");
            //        if (File.Exists(javaExe))
            //        {
            //            return javaExe;
            //        }
            //    }
            //}

            return null;
        }