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);
    }
相关推荐
冰暮流星8 小时前
javascript之数组
java·前端·javascript
Re.不晚8 小时前
JAVA进阶之路——无奖问答挑战3
java·开发语言
代码游侠8 小时前
C语言核心概念复习——C语言基础阶段
linux·开发语言·c++·学习
㓗冽8 小时前
60题之内难题分析
开发语言·c++·算法
rainbow68898 小时前
C++开源库dxflib解析DXF文件实战
开发语言·c++·开源
不倒翁玩偶8 小时前
IDEA导入新的SpringBoot项目没有启动按钮
java·spring boot·intellij-idea
John_ToDebug8 小时前
Chromium安全架构深度解析:从悬空指针检测到内存安全防御体系
c++·chrome
D_evil__8 小时前
【Effective Modern C++】第五章 右值引用、移动语义和完美转发:24. 区分万能引用和右值引用
c++
小小小米粒8 小时前
Maven Tools
java
蜡笔小马9 小时前
10.Boost.Geometry R-tree 空间索引详解
开发语言·c++·算法·r-tree