首页/新闻资讯/正文详情

【2015-04-27】Linux下使用JNI封装调用已经存在的动态静态库

发布时间:2026/9/25 16:43:07 来源:云帆数科 栏目:资讯中心
【2015-04-27】Linux下使用JNI封装调用已经存在的动态静态库
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2015-04-27 标题Linux下使用JNI封装调用已经存在的动态静态库分类编程 / java / C C 标签linux·java·jni·动态库·静态库Linux下使用JNI封装调用已经存在的动态静态库备注封装动态库封装静态库备注本文在以下两片笔记的基础上扩充而来【 http://116.62.110.235/blog/linux-dynamic-library-static-library/ 】【 http://116.62.110.235/blog/linux-jni-simple-example/ 】封装动态库#首先看下当前目录的文件$lsfunctions.c functions.h HelloJni.class HelloJni.java JniSwapper.c JniSwapper.class JniSwapper.h JniSwapper.java#先编译出一个动态库libfunc.so$ gcc functions.c-fPIC-shared-olibfunc.so#在libfunc.so的基础上编译libJniSwapper.so注意这里需要用-l来表明依赖$ gcc JniSwapper.c-fPIC-shared-I/usr/lib/jvm/java-7-openjdk-amd64/include -L.-lfunc-olibJniSwapper.so $exportLD_LIBRARY_PATH.:$LD_LIBRARY_PATH$ ldd libfunc.so linux-vdso.so.1(0x00007ffd4070f000)libc.so.6/lib/x86_64-linux-gnu/libc.so.6(0x00007f001c307000)/lib64/ld-linux-x86-64.so.2(0x00007f001c8ee000)$ ldd libJniSwapper.so linux-vdso.so.1(0x00007ffe161b2000)libfunc.so./libfunc.so(0x00007f128ad82000)libc.so.6/lib/x86_64-linux-gnu/libc.so.6(0x00007f128a99f000)/lib64/ld-linux-x86-64.so.2(0x00007f128b188000)#执行$ javac HelloJni.java $javaHelloJni100200300封装静态库#编译生成.a$ gcc-cfunctions.c $ ar-rcslibfunc.a functions.o $lsfunctions.c functions.h functions.o HelloJni.class HelloJni.java JniSwapper.c JniSwapper.class JniSwapper.h JniSwapper.java libfunc.a#在libfunc.a的基础上编译libJniSwapper.so注意这里需要用-l来表明依赖$ gcc JniSwapper.c-fPIC-shared-I/usr/lib/jvm/java-7-openjdk-amd64/include -L.-lfunc-olibJniSwapper.so $exportLD_LIBRARY_PATH.:$LD_LIBRARY_PATH$ ldd libJniSwapper.so linux-vdso.so.1(0x00007ffeceb62000)libc.so.6/lib/x86_64-linux-gnu/libc.so.6(0x00007f54cae40000)/lib64/ld-linux-x86-64.so.2(0x00007f54cb427000)#执行$ javac HelloJni.java $javaHelloJni100200300

相关推荐

一万次黑盒调用反推Jev架构:限流、截断与多引擎实测解析
一万次黑盒调用反推Jev架构:限流、截断与多引擎实测解析

一万次黑盒调用攒下的数据,比官方文档诚实得多。Jev 这个模型的文档写得干净,但从文档里你根本看不出它后面藏着什么。我花了三周时间,用脚本跑了整整一万次 API 调用,把时延、错误码、token 分布、上下文截断行为全记录了下来&am… · 2026/9/25 16:42:43

NotFair的AGENTS.md路由表设计解析:48个技能如何自动匹配用户意图
NotFair的AGENTS.md路由表设计解析:48个技能如何自动匹配用户意图

NotFair的AGENTS.md路由表设计解析:48个技能如何自动匹配用户意图 【免费下载链接】notfair-plugin Open-source SEO, GEO, and marketing skills for AI agents. 项目地址: https://gitcode.com/gh_mirrors/to/notfair-plugin NotFair 是一款面向 AI 编程代… · 2026/9/25 16:42:37

50+营销Skill装进AI Agent:Markdown指令集实战与避坑指南
50+营销Skill装进AI Agent:Markdown指令集实战与避坑指南

1. 从"营销Skill"这个词说起:它到底解决了什么问题第一次看到"把50多种营销Skill装进AI Agent"这个说法,我脑子里冒出来的第一个疑问是:Skill到底是个什么东西?是插件?是提示词模板?还… · 2026/9/25 16:42:37

多智能体代码审查系统:提示词工程化与产线级AI协同实践
多智能体代码审查系统:提示词工程化与产线级AI协同实践

1. 项目概述:这不是一个“AI写代码”的故事,而是一场产线级代码审查范式的迁移最近在技术圈里反复被问到一个问题:“你们团队真把AI用进代码审查流程了?不是demo,是每天跑在CI/CD里的那种?”我每次回答都得… · 2026/9/25 17:14:19

广州建筑轮廓GIS数据清洗与坐标转换实战:从原始Shp到可用底图
广州建筑轮廓GIS数据清洗与坐标转换实战:从原始Shp到可用底图

简介:2022年广州建筑轮廓GIS数据是一份面向城市规划、建筑设计、土地利用与环境评估等专业场景的矢量地理信息资料,完整记录了广州区域内建筑物的精确几何形状、地理位置以及高度、用途、年代等属性信息,可供规划师、建筑师及研究人员在ArcGI… · 2026/9/25 17:14:19

ComfyUI宽高缩放全解析:两种高效方案告别尺寸焦虑
ComfyUI宽高缩放全解析:两种高效方案告别尺寸焦虑

1. 宽高缩放为什么是 ComfyUI 出图的第一道坎刚接触 ComfyUI 的人,十有八九会在出图尺寸上栽跟头。你满心欢喜地输入一段精心打磨的提示词,点了生成,结果要么是人物被拉成了面条,要么是画面边缘多出一截莫名其妙的重复内容&#x… · 2026/9/25 17:14:19

agentic-awesome-skills 中的 cmux 技能实战:macOS 终端多 AI Agent 编排与全拓扑控制指南
agentic-awesome-skills 中的 cmux 技能实战:macOS 终端多 AI Agent 编排与全拓扑控制指南

AI 技能AI 插件 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,445 agentic skills. Includes CLI, local MCP, catalog, … · 2026/9/25 17:13:24

靠谱的MES生产管理系统开发服务商,资质齐全不踩坑
靠谱的MES生产管理系统开发服务商,资质齐全不踩坑

江苏道源信息技术有限公司是深耕制造业数字化系统定制开发的本土科技企业,核心业务围绕企业数字化中台、全流程管理系统、管理系统定制开发,涵盖ERP、MES生产管理系统开发等全业务环节数字化解决方案,为制造、政务、服务业、产业园等多类客户… · 2026/9/25 17:13:24

Swift Package Registry 服务规范附录 B 深度解读:package release metadata JSON Schema 全解析
Swift Package Registry 服务规范附录 B 深度解读:package release metadata JSON Schema 全解析

开发工具构建工具 【免费下载链接】swift-package-manager The Package Manager for the Swift Programming Language 项目地址: https://gitcode.com/gh_mirrors/sw/swift-package-manager 点击查看 免费下载 在 SwiftPM 的包注册服务(Swift Package R… · 2026/9/25 17:13:18

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码