JAVA调用DLL/SO动态库干货攻略(上)(jna篇)
首先,动态链接库windows下是.dll文件,linux下是.so文件。.dll文件要被调用的话需要确保其有导出函数,.so文件函数只有隐藏和不隐藏,所以默认相当于全部导出。如果遇到只提供一个导出函数用来生成实例的话,需要自己做一层封装再将实例下的函数导出供jna调用。
第一步,需要jna的jar包,以下为maven依赖:
<dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>5.1.0</version> </dependency>
<dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna-platform</artifactId> <version>5.1.0</version> </dependency>
windows下,将.dll文件直接丢根目录下即可,加载路径有多个,这里就不说了。
linux下,如果是64位,直接丢/usr/lib64即可,t其他路径可自行选择。
第二步,上代码
public class JnaClient {
public interface JLibrary extends Library {
//加载映射动态链接库,注意:linux下动态链接库名为“lib+动态库文件名(下面