1、引入依赖

compile 'net.java.dev.jna:jna:5.11.0'

2、封装工具类

public class SoUtil {/*** so库映射的接口*/private interface SoLib extends Library {/*** 映射的方法** @param param* @return*/String method(String param);}/*** 加载so库*/private static class SoLibImpl implements SoLib {static SoLib INSTANCE;static {try {// 也可以采用其他方法加载so库文件,或将so文件放在项目中INSTANCE = (SoLib) Native.synchronizedLibrary((SoLib) Native.loadLibrary("/usr/local/lib.so", SoLib.class));} catch (Exception e) {// 异常处理INSTANCE = null;System.out.println("so库[/usr/local/lib.so]加载失败!");}}@Overridepublic native String method(String param);}/*** 对外暴露的工具方法,在此方法中调用so库中的native方法** @param param* @return*/public static String invoke(String param) {if (null != SoLibImpl.INSTANCE) {return SoLibImpl.INSTANCE.method(param);} else {throw new RuntimeException("无法执行native方法,请检查so库文件是否存在!");}}
}

Java中调用C或C++的so文件方法相关推荐

  1. java中调用python

    在Java中调用Python </h1><div class="clear"></div><div class="postBod ...

  2. 在Java中调用Python

    写在前面 参考:https://www.cnblogs.com/nuccch/p/8435693.html 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然 ...

  3. 如何在java中调用js方法

    [java] view plain copy/* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEngineManager manager ...

  4. java 中调用 Matlab 的函数

    一.matlab版本必须支持java 在command 模式下面运行deploytool,如果支持该命令即可使用 二.matlab中function的书写 %定义一个函数operation(a,b), ...

  5. java执行python脚本_使用Runtime.getRuntime().exec()在java中调用python脚本

    举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...

  6. java 调用 go_实践总结:在 Java 中调用 Go 代码

    在 Java 中调用 Go 的大致过程如下go --> cgo --> jna --> java 整个过程要解决的问题主要两个:数据类型在两种语言中如何转化 何时清理无用的数据 下面 ...

  7. java oracle sql 参数_oracle pl/sql之在java中调用带有输入输出参数的oracle存储过程...

    只需注意一点输出参数是用CallableStatement里面的registerOutParameter方法注册进去 存储过程: import java.sql.CallableStatement; ...

  8. 如何通过JNI在Java中调用C库函数

    使用Java语言进行开发时,可能由于处理速度.硬件控制或者复用既有的C/C++模块等方面的原因,需要Java层与使用C/C++编写的应用.模块或库进行交互,共同完成某些任务.在两者之间充当连接桥梁作用 ...

  9. 在Java中调用Python,java面试题,java初级笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 写在 ...

最新文章

  1. ReduceTask工作机制
  2. C#String.PadLeft函数,文本对齐以及填补解决方案
  3. python 会增加内存吗,在Python中增加内存限制?
  4. 解密TDE加密数据库
  5. rtsp 分辨率信息_SDP在RTSP、国标GB28181、WebRTC中的实践
  6. 趋势|40个统计数据展示CPaaS的2021现状
  7. 腾讯、阿里、百度...大厂招聘火热中,测试员如何才能入大厂?
  8. 【IDEA】idea 运行测试类报错 Failed to resolve org.junit.platform:junit-platform-launcher:1.5.2
  9. 海兰一体计算机参数,海兰幽灵X7电竞一体机怎么样-海兰幽灵X7电竞一体机评测...
  10. 冲动是魔鬼——4.25
  11. 老男孩python作业题_老男孩python学习第一天作业
  12. 使用pako.js压缩、解压数据
  13. 极域电子教室学生端全屏广播的破解及编程处理(附静态库)
  14. HDU-2036 改革春风吹满地
  15. 可移植bit-field与driverlib兼容的C2000控制器工程模板创建及SysConfig配置
  16. kafka topic 操作
  17. java请求url加密_SpringCloud-Config通过Java访问URL对敏感词加密解密
  18. splunk与日志分析
  19. 选课系统甘特图(用Excle画甘特图)
  20. 论文教程之如何写教学类研究方法

热门文章

  1. 英灵神殿服务器linux,Valheim英灵神殿linux版本更新教程 服务器内游戏更新方法
  2. 输入一个秒数,转化成时分秒
  3. 开发R程序包之忍者篇[http://cos.name/2011/05/write-r-packages-like-a-ninja/]
  4. 欧盟站登山头盔EN 12492:2012测试报告
  5. java分支限界实现装载问题_分支限界法之装载问题
  6. 用过很多思维导图软件,最好用的还是它
  7. 许奔创新社-第51问:如何利用产品缺陷去创新?
  8. html表格数据按自定义公式自动计算,Word表格中进行数据自动计算教程
  9. 计算机语言bus代表什么,计算机中bus指什么
  10. windows bat脚本学习一(基础指令)