特定のシステムに32ビットJavaがインストールされているかどうかを判断する必要があります。ファイルシステムとレジストリへのアクセスのみを許可するリモートクエリを実行しているため、Javaを実行できません。 exe、または任意のJavaコード。
また、IBMとSun Javaの両方、およびファイルシステムとレジストリの別の場所に物事を置くように見える他のディストリビューションの両方を確実に検出したいと思っています。
私が思いついたのは、C:\ Windows\SysWOW64\Java.exeを確認することです。これは、32ビットJavaの存在をテストするための信頼できる方法ですか、それともJava.exeをそのフォルダーに入れない特定のバージョンがありますか?
更新:私はまだこれに対するより堅牢な答えを探しています。明確にするために、コマンドプロンプトにアクセスできません。また、Javaパブリッシャーが誰であるか、インストールされているバージョン番号、ユーザーがインストールするパスを選択している場合でも)を検出したいと思います。
C:\ Windows\SysWOW64\Java.exeはこれらの要件に適合するようですが、すべてのJavaインストーラーが実際にその実行可能ファイルを配置するという知識のある人からの確認をお願いします。
OracleとIBMの両方の32ビットと64ビットの両方のインストーラーを試しましたJava Windowsでは、C:\ Windows\SysWOW64\Java.exeの存在は信頼できる方法のようです32ビットJavaが利用可能であることを確認します。これらのインストーラーの古いバージョンはテストしていませんが、これは少なくとも最新バージョンのテストの信頼できる方法のようですJavaの。
これはWindowsで情報を提供するようです:
1.)Windowsコマンドプロンプトを開きます。
2.)キー入力:Java -XshowSettings:all Enterキーを押します。
3.)コマンドウィンドウに多くの情報が表示されます。文字列が見つかるまでスクロールアップします:Sun.Arch.data.model。
4.)Sun.Arch.data.model = 32と表示されている場合、VMは32ビットです。Sun.Arch.data .model = 64、VMは64ビットです。
コマンドPromptにアクセスできますか?
方法1:コマンドプロンプト
システムにインストールされているJavaの詳細は、次のコマンドJava -version
方法2:フォルダー構造
コマンドプロンプトにアクセスできない場合は、Javaが保存されているフォルダーを特定します。
32ビット:C:\Program Files (x86)\Java\jdk1.6.0_30
64ビット:C:\Program Files\Java\jdk1.6.0_25
ただし、インストール中に、ユーザーがインストールフォルダーを変更する可能性があります。
方法3:レジストリ
また、レジストリエディターにインストールされているバージョンを確認することもできます。
レジストリエディターに移動
編集->検索
Javaを検索します。 Javaのレジストリエントリを取得します。
名前がDisplayName
&DisplayVersion
のエントリには、インストール済みのJavaバージョンが表示されます
32ビットおよび64ビットのWindowsマシンについては、このキーを確認してください。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
これは、32ビットJREを備えたWindows 64ビット用です。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment
これは、Oracle-Sun JREで機能します。
それがOracleのJavaでない場合、あなたは伝えることができないかもしれません。 Oracle Java 64ビットをインストールすると、ファイルはC:\ Program Files\Javaに移動しますが、32ビットバージョンをインストールすると、デフォルトはC:\ Program Files(x86代わりに)\ Java。もちろん、Javaをインストールした人は、これらのデフォルトをオーバーライドできます。