使用maven-jnaerator-plugin插件通过c++动态库的头文件生成java代码

1、c++动态库头文件 cplus.h内容如下

#ifndef _CPLUS_H_
#define _CPLUS_H_

int sayCplus();

#endif

2、c++代码 文件cplus.cpp 内容如下

#include<stdio.h>
extern "C"
{
int sayCplus()
{
    printf("Hello, C++\n");
    return 0;
}
}

3、通过下面命令编译成动态库文件 动态库为 mycpp

g++ -shared -o mycpp.dll cplus.cpp

4、maven项目添加插件

          <plugin>
                <groupId>com.nativelibs4java</groupId>
                <artifactId>maven-jnaerator-plugin</artifactId>
                <version>0.12</version>
            </plugin>

5、如下图创建目录  jnaerator (src/main/jnaerator) 和文件config.jnaerator  (src/main/jnaerator/config.jnaerator)

6、 config.jnaerator 文件内容如下

// 生成 java 文件名称: mycpp -> MycppLibrary.java  c++动态库名称为 mycpp
-library mycpp
// 生成包名 com.pojo.util -> package com.pojo.util;
-package com.pojo.util

// 运行环境使用 jna
-runtime JNA
-D__cplusplus=1

// 忽略过期方法
-skipDeprecated
// 忽略指定方法
-skipFunctions im_.*
-skipFunctions imb_.*

// 指定头文件
C:\Users\Administrator\cplus.h

7、运行插件,生成java代码,双击  

jnaerator:generated

8、生成java代码如下 

9、测试生成的代码如下 

public class MyCppTest {

    public static void main(String[] args) {
//        int num = MyCpp.INSTANCE.sayCplus();
//        System.out.println(num);
//        int num2 = MyCpp2.INSTANCE.sayCplus();
//        System.out.println(num2);

        int num2 = MycppLibrary.INSTANCE.sayCplus();
        System.out.println(num2);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非ban必选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值