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);
    }
相关推荐
想睡hhh3 分钟前
c++概念——入门基础概念
开发语言·c++
愚润求学17 分钟前
【C++】vector的模拟实现
开发语言·c++·stl·语法
suimeng621 分钟前
基本元素定位(findElement方法)
java·selenium
方渐鸿21 分钟前
【2025】快速部署安装docker以及项目搭建所需要的基础环境(mysql、redis、nginx、nacos)
java·运维·docker·持续部署·dockercompse
程序员鱼皮22 分钟前
2025最新 Java 面经:美团后端面试真实复盘,附答案模板,速速收藏!
java·后端·面试
又过一个秋25 分钟前
【sylar-webserver】7 定时器模块
linux·c++
我要学编程(ಥ_ಥ)28 分钟前
初始JavaEE篇 —— Mybatis-plus 操作数据库
java·java-ee·mybatis·mybatis-plus
有来技术36 分钟前
从0到1手撸企业级权限系统:基于 youlai-boot(开源) + Java17 + Spring Boot 3 完整实战
java·spring boot·后端
皮卡兔子屋42 分钟前
java虚拟机---JVM
java·jvm