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