3

そのため、アプリケーション用の Java Access Bridge のインストーラを作成していますが、Java インストール ディレクトリを見つける必要があります。私はこのコードを使用していました..

public static string GetJavaInstallationPath()
    {
        try
        {
            string environmentPath = Environment.GetEnvironmentVariable("JAVA_HOME");
            if (!string.IsNullOrEmpty(environmentPath))
            {
                return environmentPath;
            }

            string javaKey = "SOFTWARE\\JavaSoft\\Java Runtime Environment\\";
            using (Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(javaKey))
            {
                string currentVersion = rk.GetValue("CurrentVersion").ToString();
                using (Microsoft.Win32.RegistryKey key = rk.OpenSubKey(currentVersion))
                {
                    return key.GetValue("JavaHome").ToString();
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.StackTrace);
            return null;
        }
    }

まで..仮想マシンでWindows 7 64ビットのクリーンインストールを実行し、java.comからJavaをインストールしました。デフォルトで32ビットバージョンのJavaがインストールされましたが、32ビットでもJAVA_HOME変数またはレジストリキーが必要になるため、問題ではないと本当に思いました。そうではありませんでした。レジストリ キーも、PATH 変数のエントリも、JAVA_HOME 変数もありませんでした。したがって、このコードは機能しません。私の質問は、インストールされているのが 32 ビットの Java バージョンであっても、どのように Java インストール ディレクトリを検出するかということです。私が使用できることを私が知っているものは何もありません..

4

1 に答える 1

4

32 ビット アプリケーションではレジストリ パスが異なることを忘れています。この MS 記事を参照してください: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724072%28v=vs.85%29.aspx

于 2013-05-24T20:58:44.373 に答える