>>版权声明:本文为原创文章,请不要拷贝转载。
1.JNA资料
这份说明中讲的还是蛮细的,参数映射,指针,回调函数等等都有涉及,源码中还有一些例子。
2.使用例子
引入依赖
net.java.dev.jna
jna
5.3.1
新建接口类来加载Native库,映射库中方法
public interface MsvcrtLibrary extendsLibrary {
//加载动态库
MsvcrtLibrary INSTANCE= (MsvcrtLibrary)Native.load("msvcrt"), MsvcrtLibrary.class);voidprintf(String format, Object... args);
}
这个是文档中的例子,它在windows下会加载了msvcrt.dll库。
msvcrt.dll在系统库目录中,可见JNA会自动搜素系统库目录。
调用native方法
public classHelloWorld {public static voidmain(String[] args) {
MsvcrtLibrary.INSTANCE.printf("Hello, World\n");
}
}
3.注意事项
动态库搜素加载的路径
指定设置搜素路径的方式:
可以通过设置系统属性“jna.library.path”
修改系统的库访问环境变量
将库放置在classpath下,或者放在{OS}-{A