1、首选要把C++写的接口打成so包,so包以lib开头 如:libDecodeStream.so

2、新建一个java类继承Library(jna包)

public interface DecodeStreamLib extends Library {

    DecodeStreamLib INSTANCE = Native.load("DecodeStream", DecodeStreamLib.class);

    /**
     * @brief Decode_SetLogLevel,设置日志级别
     * @param level,范围0~4,分别代表:debug、info、warn、error、none共5个日志级别,
     *               none表示不输出任何日志
     */
    void Decode_SetLogLevel(int level);

    /**
     * @brief Decode_Init, 解码动态库初始化设备环境,进程内调用一次
     * @param aclConfigPath atlas 配置文件路径
     * @return 错误码,见对应描述
     */
    int Decode_Init(String aclConfigPath);
}

3、DecodeStreamLib 类中的 Native.load(“DecodeStream”, DecodeStreamLib.class)中DecodeStream就是对应这个so包,里面的方法对应C++的so包的接口,so包要放在java项目resources配置文件下面,这样就可以java调用C++的接口了

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐