springboot调用so文件
话不多说,直接进入重点。
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文件相关推荐
- springboot调用python脚本_Springboot实现上传文件接口,使用python的requests进行组装报文上传文件的方法...
记录瞬间 近段时间使用Springboot实现了文件的上传服务,但是在使用python的requests进行post上传时,总是报错. 比如: 1.Current request is not a m ...
- SpringBoot调用RESTful Web服务
SpringBoot调用RESTful Web服务 本指南将引导您完成创建使用RESTful Web服务的应用程序的过程. 你会建立什么 您将RestTemplate在https://gturnqui ...
- springboot上传文件到阿里云
springboot上传文件到OSS 前提声明,文章借鉴了https://blog.csdn.net/wonder_dog/article/details/81152307#commentsedit博 ...
- SpringBoot实现oss文件的上传与下载
SpringBoot实现oss文件的上传与下载 最近项目中需要通过OSS来实现文件的上传和下载以及根据oss文件(word模板)生成Word,特此记录,以便日后查阅. 一.相关概述 OSS对象存储 ...
- SpringBoot 调用python接口
SpringBoot调用Python脚本 一.前言 二.方法 1.代码 2.运行 一.前言 SpringBoot作为后端开发框架,有强大且方便的处理能力.但是作为一个结合数据分析+前台展示的网站来说, ...
- SpringBoot入门之七 文件处理之Excel PDF
SpringBoot入门之七 文件处理之Excel PDF 1. 整合EasyExcel 1.1 引入依赖 1.2.实体类 1.3 工具方法 1.4 业务服务类 1.5 测试类 源码地址 2. 整合i ...
- thinkphp 调用php文件上传,ThinkPHP实现带验证码的文件上传功能实例
本文实例讲述了ThinkPHP实现带验证码的文件上传功能.分享给大家供大家参考.具体实现方法如下: ThinkPHP上传文件非常的简单我们只要调用一个文件上传类UploadFile就可以快速的实现上传 ...
- python调用js库中的函数_Python 调用JS文件中的函数
Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...
- Hadoop集群上使用JNI,调用资源文件
hadoop是基于java的数据计算平台,引入第三方库,例如C语言实现的开发包将会大大增强数据分析的效率和能力. 通常在是用一些工具的时候都要用到一些配置文件.资源文件等.接下来,借一个例子来说明ha ...
- 关于java调用Dll文件的异常 %1 不是有效的 Win32 应用程序。
关于java调用Dll文件的异常 %1 不是有效的 Win32 应用程序. 参考文章: (1)关于java调用Dll文件的异常 %1 不是有效的 Win32 应用程序. (2)https://www. ...
最新文章
- Python之旅.第九章.并发编程..
- Leangoo看板标签的用法(scrum敏捷开发)
- 李联宁|量子计算机:技术路线、风险及战略投资
- 以下不是python文件读写方法的是-使用Python进行二进制文件读写的简单方法(推荐)...
- ie浏览器怎样查看html,查看IE浏览器历史记录的方法
- 怎么使用Docker搭建PHP开发环境呢?
- 栈和队列的区别,栈和堆的区别
- c++中基本的语法问题
- mysql MHA 集群搭建
- 中国计算机信息系统集成行业协会有含金量吗,系统集成工程师证书的含金量怎么样...
- windows下批量换程序——运维常用
- DPDK学习0 -- 学习步骤
- [转]Linux下的虚拟光驱和虚拟软驱
- android备份手机号码,Android QQ同步助手3.2 保证号码备份“不丢人”
- 哲学家就餐问题及其实现
- wordpress图像大小_如何在WordPress中添加图像积分(逐步操作)
- totem 解码器_从Ubuntu中的Totem电影播放器​​清除历史记录
- 【51MCU】51单片机定时器中断写MIDI音乐(按键可切换音乐)
- Win10系统电脑夜间模式与夜晚更配
- 数据库实例自动crash并报ORA-27157、ORA-27300等错误