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

news/2025/1/24 19:38:56/

一、创建c文件

SoTest.h
#pragma once
class SoTest
{int Add(int a,int b);
};
SoTest.cpp
#include "SoTest.h"int SoTest::Add(int a, int b) {return a + b;
}

二、创建so文件

/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);}


http://www.ppmy.cn/news/1565862.html

相关文章

IP-MS、CoIP-MS及AP-MS助力研究蛋白互作组学

蛋白质相互作用在机体的多种病理生理过程中扮演着至关重要的角色。绝大多数蛋白质分子需要通过与其他蛋白质的相互作用才能实现其生物学功能。因此&#xff0c;深入研究蛋白质相互作用组学对于阐明机体病理和生理过程的发生发展机制具有重要的科学意义。 目前&#xff0c;蛋白…

【Linux入门】2w字详解yum、vim、gcc/g++、gdb、makefile以及进度条小程序

文章目录 Ⅰ. Linux 软件包管理器 yum一、什么是软件包&#xff1f;二、查找软件包三、安装与卸载软件包 拓展&#xff1a;lrzsz简介拓&#xff1a;配置 yum 源路径的方法Ⅱ. Linux开发工具vim编辑器一、vim 的基本概念二、vim 的基本操作三、vim 命令模式的操作四、vim 底行模…

@Async注解

Async是Spring框架提供的一个注解&#xff0c;用于标记一个方法为异步方法。 当你在某个方法上加上这个注解后&#xff0c;Spring会用一个单独的线程去执行这个方法&#xff0c;这样主线程就不会被这个方法阻塞&#xff0c;可以继续执行其他任务。 条件1&#xff1a;开启异步…

Antd React Form使用Radio嵌套多个Select和Input的处理

使用Antd React Form使用Radio会遇到嵌套多个Select和Input的处理&#xff0c;需要多层嵌套和处理默认事件和冒泡&#xff0c;具体实现过程直接上代码。 实现效果布局如下图 代码 <Formname"basic"form{form}labelWrap{...formItemLayoutSpan(5, 19)}onFinish{on…

利用MetaNeighbor验证重复性和跨物种分群

进行跨物种研究时&#xff0c;我们经常需要进行注释结果的比较和归类&#xff0c;或者同一物种不同样本之间的注释验证。R语言中有一个包就可以利用直观的热图展示这一需求。 导入包和环境 library(Seurat) library(ggplot2) library(MetaNeighbor) library(SingleCellExperi…

【LeetCode100】--- 寻找重复数

题目传送门 方法一&#xff1a;暴力解法&#xff08;超时&#xff09; 算法原理 双重循环&#xff0c;每次固定一个数&#xff0c;再遍历别的数。比较这两个数是否相等&#xff0c; 若相等则返回这个数。就是重复数。 复杂度分析 时间复杂度&#xff1a;O&#xff08;N方&…

【Flutter】platform_view之AppKitView在哪个flutter版本添加的

通过一下文件对比判断哪个版本添加的 已添加&#xff1a; https://github.com/flutter/flutter/blob/3.16.0/packages/flutter/lib/src/widgets/platform_view.dart https://github.com/flutter/flutter/blob/3.15.0-0.0.pre/packages/flutter/lib/src/widgets/platform_vie…

2025春招 SpringCloud 面试题汇总

大家好&#xff0c;我是 V 哥。SpringCloud 在面试中属于重灾区&#xff0c;不仅是基础概念、组件细节&#xff0c;还有高级特性、性能优化&#xff0c;关键是项目实践经验的解决方案&#xff0c;都是需要掌握的内容&#xff0c;正所谓打有准备的仗&#xff0c;秒杀面试官&…