1.创建java jna调用c底层类库类,注意不同系统结构体的编码对齐方式,如果结构体导致报错,可以用参数的形式修改接口
public class Jna {
private static String CloudStorageCDllLinux = "/home/lib/libxxx.so";
public interface IJNA extends Library {
ISUPCSSByJNA instance = Native.loadLibrary(CloudStorageCDllLinux, ISUPCSSByJNA.class);
public static class SsParam extends Structure {
public boolean enableHttps = false; //是否启用https
public int port; //端口号
public byte[] ip = new byte[128]; // ip
public ServerParam(){
super(ALIGN_GNUC);//ALIGN_DEFAULT ALIGN_GNUC
}
@Override
protected List<String> getFieldOrder(){
return Arrays.asList("enableHttps", "port", "ip");
}
}
//bool init(int iTest, char* szTest);
//boolean init(int iTest, byte[] szTest);
boolean initialize(SsParam ssParam);
}
public boolean initialize(IJNA.SsParam ssParam){
return IJNA.instance.initialize(ssParam);
}
}
2.在config里面实例化Jna Bean
3.后续在spring boot服务就可以注解注入使用