Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

64bitのJVMで32bitのJNIライブラリを動かしたら…

今の開発では自社の米パートナー企業が提供する、とあるエンジンプログラムを利用するのですが、そのライブラリがJNIで作られていました。

Java初心者な私は今日までJNIって言葉を知らなかったのですが…Java Native Interfaceの略称だとのことです。解説はWikipediaなど色々情報はあるのでそちらをお願いします(^^; →Java Native Interface

で、呼び出した時に出たエラーは

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

というものでした。

Stack Overflowの情報だと

などがありました。

上記読む限り、パートナーに64bitでコンパイルしたものを要請せねばいかんようですね(^^;

ただ全く動かせないまま、だと辛いので、とりあえず、JDKの32bitを入れて、NetBeansで以下のように指定して回避しようかと。
JAVA_HOMEとか変えたくない…と思っていたのですが、該当するプロジェクトを指定して、利用するJDKを変更ができるっぽいですね。便利です。

1.JDKの32bitをインストールします
2.NetBeansの「ツール」メニューから「Javaプラットフォーム」を選びます

f:id:kikutaro777:20130205185954j:plain

3.左下にあるプラットフォームの追加を選びます

f:id:kikutaro777:20130205185847j:plain

4.インストールしたJDKの32bit版を指定します

f:id:kikutaro777:20130205190204j:plain

5.プラットフォーム名は適当に「JDK 1.7(32bit)」などとしました

f:id:kikutaro777:20130205190250j:plain

6.対象のプロジェクトファイルで右クリックして「プロパティ」を選択します

上記で追加したJavaプラットフォームが見えるので選択します。
f:id:kikutaro777:20130205190401j:plain

上記設定でとりあえず動きました(^^;ほっ。

ノートPC(32bit)でお試しで作って動いていたコードだったので、今日デスクトップ(64bit)に移してみたら、いきなり動かなかったので一瞬何が起きたのかわからず、ちょっと焦りました…。開発環境の差もしっかり意識していかん。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村