Windows上で作成したJNI(Java Native Interface)のモジュールが正しく動作しません。何か原因は考えられますか?
Interstage Application Serverのよくあるご質問を検索できます。
Interstage Application Serverの技術情報はこちら
- Windows上で作成したJNI(Java Native Interface)のモジュールが正しく動作しません。何か原因は考えられますか?
- WindowsアプリケーションからJava VMを呼び出したり、Javaアプリケーションからネイティブライブラリを呼び出す場合は、該当プロセスで使用されるすべての.EXE、.DLLが、マルチスレッド版CランタイムライブラリDLL(MSVCRT.DLL)を結合するように作成されていなければなりません。
例えば、Microsoft Visual C++で32ビット版のJNIモジュールを作成する際は、以下のことを確認してください。
CLコマンドで指定する場合
コンパイルオプションに、/MDを指定してください。Microsoft Visual Studioのプロジェクトで指定する場合
[プロジェクトの設定]ダイアログボックスを開き、[C/C++]タグを選択します。
[カテゴリ]から[コード生成]を選択し、[使用するランタイムライブラリ]で[マルチスレッド(DLL)]を選択します。
モジュール(EXE、DLL)がMSVCRT.DLLを結合しているかどうかは、Microsoft Visual C++ 付属のdumpbin.exeコマンドやDependency Walker(depend.exe)で確認できます。
Dependency Walkerは、VC++のほか、Platform SDKにも添付されています(http://www.dependencywalker.comからも入手できます)。
製品・サービス区分 | Interstage | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 運用/保守 |