0

Windows で Java ベースの GUI アプリケーションを起動するランチャーを C++ で作成しています。CreateProcess「javaw.exe」の起動に使用しています。「javaw.exe」の 32 ビット バージョンが常に起動されるという事実を除いて、すべてが機能します。

Java がインストールされると、実行可能ファイル「java.exe」および「javaw.exe」が%windir%\System3232 ビット Windows に配置されます。64 ビット Windows では、同じ実行可能ファイルを%windir%\SysWow64.

3 つの可能性があります。

  1. 32 ビット Windows で実行される 32 ビット ランチャー:%windir%\System32は検索パスにあり、32 ビットの javaw.exe が見つかります。GUI が起動します。すべてが機能します。

  2. 64 ビット ウィンドウで実行される 32 ビット ランチャー:%windir%\System32検索パスにあります。%windir%\System32にリダイレクトされ%windir%\SysWow64ます (この場合、私のランチャーは 32 ビットであるため)。32 ビットの javaw.exe が見つかりました。GUI が起動します。すべてが機能します。

  3. 64 ビット Windows で実行される 64 ビット ランチャー:%windir%\System32検索パスにあります。リダイレクトは発生しません。実行可能 javaw.exe は含まれていません。ランチャーが失敗します。

3 番目のケースで 64 ビットの javaw.exe を起動するにはどうすればよいですか?

4

1 に答える 1

2

最終的に解決策を見つけました(stackoverflowのさまざまな投稿を掘り下げることにより)。

JRE の最近のバージョンをインストールすると、「javaw.exe」のコピーが System32 に配置されます。64 ビット JRE の以前のバージョンはおそらくそうではありませんでした (よくわかりません)。

いずれにしても、レジストリ キーには、システムのデフォルト JRE のキーを指すHKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environmentプロパティがあります。CurrentVersionバージョン番号に対応するサブキーにはJavaHome、JRE インストールの場所を指すプロパティがあります。

JRE/JDK がインストールされていない場合、Java Runtime Environmentキーは見つかりません。

于 2011-04-28T14:15:32.693 に答える