Windows で Java ベースの GUI アプリケーションを起動するランチャーを C++ で作成しています。CreateProcess
「javaw.exe」の起動に使用しています。「javaw.exe」の 32 ビット バージョンが常に起動されるという事実を除いて、すべてが機能します。
Java がインストールされると、実行可能ファイル「java.exe」および「javaw.exe」が%windir%\System32
32 ビット Windows に配置されます。64 ビット Windows では、同じ実行可能ファイルを%windir%\SysWow64
.
3 つの可能性があります。
32 ビット Windows で実行される 32 ビット ランチャー:
%windir%\System32
は検索パスにあり、32 ビットの javaw.exe が見つかります。GUI が起動します。すべてが機能します。64 ビット ウィンドウで実行される 32 ビット ランチャー:
%windir%\System32
検索パスにあります。%windir%\System32
にリダイレクトされ%windir%\SysWow64
ます (この場合、私のランチャーは 32 ビットであるため)。32 ビットの javaw.exe が見つかりました。GUI が起動します。すべてが機能します。64 ビット Windows で実行される 64 ビット ランチャー:
%windir%\System32
検索パスにあります。リダイレクトは発生しません。実行可能 javaw.exe は含まれていません。ランチャーが失敗します。
3 番目のケースで 64 ビットの javaw.exe を起動するにはどうすればよいですか?