32bit DLL を 64bit OS上のEclipseから使用する

■ 背景
Windows 8 (64bit) に Eclipse (Kepler) がインストールされている
Windows ネイティブのDLLが32bit版しか存在しない
・このDLLを使用するJavaプログラムをEclipseから実行すると次のようなエラーメッセージが表示される。

Can't load IA 32-bit .dll on AMD 64-bit platform problem

・この問題を解決したい

■ エラーの理由
Javaを実行するVMが64bit版の場合、32bit版のDLLを使用することができないため。実行ファイル(この場合は javaw.exe)と、DLLは両方とも32bitまたは、64bitに統一されている必要がある。

■ 解決方法
(方法1)64bit版のDLLを準備する。でも、それができない場合もある。
(方法2)32bit版のVM(JRE)を使用する

■ 方法2の具体的な手順
・32bit版のJREをインストールする。通常は次の場所に配置されることになる。

C:\Program Files (x86)\Java\jre7

Eclipse に、上記JREを追加する。
(手順)
 1. Eclipseの[Window]-[Preferences]メニューを選択
 2. Java-Installed JREsを選択
 3. [Add..]を押し、[Standard VM]を選択
 4. JRE home を「C:\Program Files (x86)\Java\jre7」にする。JRE name は後でわかるように適当に決める。たとえば「jre7-x86」。JRE system librariesは自動で読み込まれる。ダイアログは次のような感じ。

・続いてEclipseのプロジェクトで上記JREでプログラムが実行されるようにする。
(手順)
 1. Eclipseの[Project]-[Properties]をメニューを選択
 2. [Run/Debug Settings]でコンフィグレーションを選んで[Edit]を押す
 3. [JRE]タブの[Runtime JRE]で Alternate JRE を選択。プルダウンから先ほどの「jre7-x86」を選択。

これでOK。

プログラマが知るべき97のこと

プログラマが知るべき97のこと

情熱プログラマー ソフトウェア開発者の幸せな生き方

情熱プログラマー ソフトウェア開発者の幸せな生き方