使用 Linux 共享库的示例

此示例指导您完成将本机共享库与 Linux® 系统上的 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 动态装入和调用的共享库。
    gcc -I<java_home>/include -o libSample.so -shared Sample.c
  6. 运行样本类。
    LD_LIBRARY_PATH=. java Sample
    java -Djava.library.path=. Sample
    该程序输出:

    Printing from native

结果

现在,您应该能够使用同一框架从 Java 应用程序访问本机共享库。