この例では、 Linux® システム上の 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をコンパイルします。
- javah を使用して、ネイティブ・コードのヘッダー・ファイルを作成します。
- 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 から動的にロードして呼び出すことができる共有ライブラリーにリンクしてバインドします。
gcc -I<java_home>/include -o libSample.so -shared Sample.c
- Sample クラスを実行します。
LD_LIBRARY_PATH=. java Sample
または
java -Djava.library.path=. Sample
プログラムは次のように出力します。
Printing from native
結果
これで、同じフレームワークを使用して、Java アプリケーションからネイティブ共有ライブラリーにアクセスできるようになります。