Windows での共有ライブラリーの使用例

この例では、Windows システム上の Java™ アプリケーションでネイティブ共有ライブラリーを使用するプロセスについて説明します。

手順

  1. サンプル・アプリケーション 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( );
          }
       }
    }
  2. Sample.javaをコンパイルします。
    javac Sample.java
  3. javah を使用して、ネイティブ・コードのヘッダー・ファイルを作成します。
    javah Sample
  4. Sample.cという名前のファイルを作成します。
    #include <stdio.h>
    #include "Sample.h"
    
    JNIEXPORT void JNICALL Java_Sample_printFromNative( JNIEnv * env, jobject obj )
    {
       printf( "Printing from native\n" );
    }
  5. 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 コンパイラーに指示します。
  6. Sample クラスを実行します。
    set PATH=<path-generated-dll>;%PATH%
    または
    java -Djava.library.path=. Sample
    プログラムは次のように出力します。

    Printing from native

結果

これで、同じフレームワークを使用して、Java アプリケーションからネイティブ共有ライブラリーにアクセスできるようになります。