springboot 调用 c++生成的so库文件

一、创建c文件

SoTest.h
cpp 复制代码
#pragma once
class SoTest
{
	int Add(int a,int b);
};
SoTest.cpp
cpp 复制代码
#include "SoTest.h"

int SoTest::Add(int a, int b) {
	return a + b;
}

二、创建so文件

cpp 复制代码
/home/ubuntu/projects/SoTest/bin/x64/Debug/libSoTest.so

三、java代码

Maven依赖

复制代码
<dependency>
	<groupId>net.java.dev.jna</groupId>
	<artifactId>jna</artifactId>
	<version>5.9.0</version>
</dependency>

核心代码

java 复制代码
public class SOTest {
    public interface SoTest extends Library {
        static SoTest INSTANCE = Native.load("/home/ubuntu/projects/SoTest/bin/x64/Debug/libSoTest.so", SoTest.class);

        int _ZN6SoTest3AddEii(String x, int a, int b);         // c方法
    }


    public int add(int a, int b) {
        return SoTest.INSTANCE._ZN6SoTest3AddEii("", a, b);
    }

}

测试关键代码

java 复制代码
    public static void main(String[] args){
        SOTest soTest = new SOTest();
        soTest.add(1,1);
    }
相关推荐
绝顶少年16 分钟前
Spring 框架中 RestTemplate 的使用方法
java·后端·spring
小趴菜822718 分钟前
安卓人机验证View
android·java·前端
那个什么黑龙江28 分钟前
关于C++中的“类中的特殊成员函数”
开发语言·c++
观望过往37 分钟前
【Java SE 运算符】全面解析与实践指南
java
没有bug.的程序员40 分钟前
分布式架构初识:为什么需要分布式
java·分布式·架构·php
郑州光合科技余经理1 小时前
微服务架构:基于Spring Cloud ,构建同城生活服务平台
java·spring cloud·微服务·小程序·架构·uni-app
ajassi20001 小时前
开源 java android app 开发(十七)封库--混淆源码
android·java·开源
海梨花1 小时前
关于Java的几个小问题
java·面试
vx_dmxq2111 小时前
免费领源码-Spring boot的物流管理系统 |可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·大数据·python·jupyter·课程设计
zero13_小葵司2 小时前
在不同开发语言与场景下设计模式的使用
java·开发语言·javascript·设计模式·策略模式