使用 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
- 指示 C 编译器生成 DLL(而不是常规 Win64 可执行程序)。
- 运行样本类。
或set PATH=<path-generated-dll>;%PATH%java -Djava.library.path=. Sample该程序输出:Printing from native