そのため、アプリケーション用の 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 インストール ディレクトリを検出するかということです。私が使用できることを私が知っているものは何もありません..