Windows での共有ライブラリーの使用例
この例では、Windows システム上の Java™ アプリケーションでネイティブ共有ライブラリーを使用するプロセスについて説明します。
手順
- サンプル・アプリケーション Sample.javaを作成します。
public class Sample { public native void printFromNative( ); public static void main( String[] args ) { Sample sample = new Sample( ); sample.printFromNative( ); } static { try { System.loadLibrary( "Sample" ); } catch ( Exception e ) { System.out.println( "ERROR: Unable to load libSample.so"); e.printStackTrace( ); } } }
- Sample.javaをコンパイルします。
javac Sample.java
- javah を使用して、ネイティブ・コードのヘッダー・ファイルを作成します。
javah Sample
- Sample.cという名前のファイルを作成します。
#include <stdio.h> #include "Sample.h" JNIEXPORT void JNICALL Java_Sample_printFromNative( JNIEnv * env, jobject obj ) { printf( "Printing from native\n" ); }
- Sample.c をコンパイルしてから、Java から動的にロードして呼び出すことができる共有ライブラリーにリンクしてバインドします。
cl -Ic:\java\include -Ic:\java\include\win64 -MD -LD Sample.c -Fe Sample.dll
- -MD (ミサイル)
- Sample.dllがWin64マルチスレッドCライブラリーにリンクされていることを確認します。
- -LD
- 標準 Win64 実行可能プログラムの代わりに DLL を生成するよう、C コンパイラーに指示します。
- Sample クラスを実行します。
またはset PATH=<path-generated-dll>;%PATH%
java -Djava.library.path=. Sample
プログラムは次のように出力します。Printing from native