话不多说,直接进入重点。

1. 导入jna依赖

        <dependency><groupId>com.sun.jna</groupId><artifactId>jna</artifactId><version>3.0.9</version></dependency>

2. 在resources下新建目录linux-x86-64,并在这个目录中放入so文件

3. 调用如下初始化代码,多个so调用时请自行封装

static {try {String path = System.getProperty("java.io.tmpdir");String name = "libmath.so";// 获取sources下的资源ClassPathResource classPathResource = new ClassPathResource("linux-x86-64/" + name);InputStream in = classPathResource.getInputStream();// 写入到临时文件FileUtil.writeFile(path + "/lib/" + name, in);} catch (IOException e) {// }
}

4. 建立Math.class映射

package com.xxx.jni;import com.sun.jna.Library;
import com.sun.jna.Structure;public interface Math extends Library {int max(int a, int b);class TestStruct extends Structure {public static class ByReference extends TestStruct implements Structure.ByReference {}public static class ByValue extends TestStruct implements Structure.ByValue {}}
}

调用:

    @PostMapping("/A0018")public ServerResponse A0018() {String path = System.getProperty("java.io.tmpdir");Math mathJNI = (Math) Native.loadLibrary(path + "/lib/" + name, Math.class);int max = mathJNI.max(5432, 211233);return ServerResponse.success(max);}

结果:

springboot调用so文件相关推荐

  1. springboot调用python脚本_Springboot实现上传文件接口,使用python的requests进行组装报文上传文件的方法...

    记录瞬间 近段时间使用Springboot实现了文件的上传服务,但是在使用python的requests进行post上传时,总是报错. 比如: 1.Current request is not a m ...

  2. SpringBoot调用RESTful Web服务

    SpringBoot调用RESTful Web服务 本指南将引导您完成创建使用RESTful Web服务的应用程序的过程. 你会建立什么 您将RestTemplate在https://gturnqui ...

  3. springboot上传文件到阿里云

    springboot上传文件到OSS 前提声明,文章借鉴了https://blog.csdn.net/wonder_dog/article/details/81152307#commentsedit博 ...

  4. SpringBoot实现oss文件的上传与下载

    SpringBoot实现oss文件的上传与下载 最近项目中需要通过OSS来实现文件的上传和下载以及根据oss文件(word模板)生成Word,特此记录,以便日后查阅. 一.相关概述 OSS对象存储   ...

  5. SpringBoot 调用python接口

    SpringBoot调用Python脚本 一.前言 二.方法 1.代码 2.运行 一.前言 SpringBoot作为后端开发框架,有强大且方便的处理能力.但是作为一个结合数据分析+前台展示的网站来说, ...

  6. SpringBoot入门之七 文件处理之Excel PDF

    SpringBoot入门之七 文件处理之Excel PDF 1. 整合EasyExcel 1.1 引入依赖 1.2.实体类 1.3 工具方法 1.4 业务服务类 1.5 测试类 源码地址 2. 整合i ...

  7. thinkphp 调用php文件上传,ThinkPHP实现带验证码的文件上传功能实例

    本文实例讲述了ThinkPHP实现带验证码的文件上传功能.分享给大家供大家参考.具体实现方法如下: ThinkPHP上传文件非常的简单我们只要调用一个文件上传类UploadFile就可以快速的实现上传 ...

  8. python调用js库中的函数_Python 调用JS文件中的函数

    Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...

  9. Hadoop集群上使用JNI,调用资源文件

    hadoop是基于java的数据计算平台,引入第三方库,例如C语言实现的开发包将会大大增强数据分析的效率和能力. 通常在是用一些工具的时候都要用到一些配置文件.资源文件等.接下来,借一个例子来说明ha ...

  10. 关于java调用Dll文件的异常 %1 不是有效的 Win32 应用程序。

    关于java调用Dll文件的异常 %1 不是有效的 Win32 应用程序. 参考文章: (1)关于java调用Dll文件的异常 %1 不是有效的 Win32 应用程序. (2)https://www. ...

最新文章

  1. Python之旅.第九章.并发编程..
  2. Leangoo看板标签的用法(scrum敏捷开发)
  3. 李联宁|量子计算机:技术路线、风险及战略投资
  4. 以下不是python文件读写方法的是-使用Python进行二进制文件读写的简单方法(推荐)...
  5. ie浏览器怎样查看html,查看IE浏览器历史记录的方法
  6. 怎么使用Docker搭建PHP开发环境呢?
  7. 栈和队列的区别,栈和堆的区别
  8. c++中基本的语法问题
  9. mysql MHA 集群搭建
  10. 中国计算机信息系统集成行业协会有含金量吗,系统集成工程师证书的含金量怎么样...
  11. windows下批量换程序——运维常用
  12. DPDK学习0 -- 学习步骤
  13. [转]Linux下的虚拟光驱和虚拟软驱
  14. android备份手机号码,Android QQ同步助手3.2 保证号码备份“不丢人”
  15. 哲学家就餐问题及其实现
  16. wordpress图像大小_如何在WordPress中添加图像积分(逐步操作)
  17. totem 解码器_从Ubuntu中的Totem电影播放器​​清除历史记录
  18. 【51MCU】51单片机定时器中断写MIDI音乐(按键可切换音乐)
  19. Win10系统电脑夜间模式与夜晚更配
  20. 数据库实例自动crash并报ORA-27157、ORA-27300等错误

热门文章

  1. 关于信号处理中的复信号
  2. python学生信息管理系统 实验报告_Python学生信息管理系统的开发
  3. 电子科技大学《图论及其应用》复习总结--第五章 匹配与因子分解
  4. 数据仓库与数据挖掘课后思考题整理
  5. 关于STM32红外遥控器的研究与分析
  6. 2500个常用中文字符 + 130常用中英文字符
  7. python 大智慧365 数据格式_大智慧365导入exp 大智慧自定义数据。
  8. c++整人小程序(附源码)
  9. linux键盘映射默认,Linux 中的键盘映射【转】
  10. CAD盗图木马分析与处置策略