java jna调用c++动态库

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服务就可以注解注入使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值