jna的简单测试
================>helloworld.h 文件:
================> helloworld.c 文件:
================> 编译方法1:生成libhello.so 文件
================>编译方法2:生成libhelloworld.so 文件
================>★★★★把生成的文件放到 /usr/lib64/ 下
================>java工程目录如下:
================> 测试代码如下:
================>测试结果如下:============================================
================>helloworld.h 文件:
1 2 3 4 5 6 7 8 | #ifndef _HELLOWORLD_H #define _HELLOWORLD_H void print(); int add( int a, int b); #endif |
================> helloworld.c 文件:
1 2 3 4 5 6 7 8 9 | #include <stdio.h> #include "helloworld.h" int add( int first, int second){ return first+second; } void print(){ printf ( "helloworld...." ); } |
================> 编译方法1:生成libhello.so 文件
[root@localhost dev_src]# gcc -fpic -shared -o libhello.so helloworld.c
================>编译方法2:生成libhelloworld.so 文件
[root@localhost dev_src]# gcc -fPIC -c helloworld.c -o helloworld.o
[root@localhost dev_src]# gcc -fPIC -shared helloworld.o -o libhelloworld.so
================>★★★★把生成的文件放到 /usr/lib64/ 下
================>java工程目录如下:
================> 测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package com.wfg.test; import com.sun.jna.Library; import com.sun.jna.Native; public class AlphaJna { //继承Library,用于加载库文件 public interface Clibrary extends Library{ //加载libhello.so链接库 //Clibrary INSTANTCE = (Clibrary) Native.loadLibrary("hello", Clibrary.class); //加载libhelloworld.so链接库 Clibrary INSTANTCE = (Clibrary) Native.loadLibrary( "helloworld" , Clibrary. class ); //此方法为链接库中的方法 void print(); int add( int a, int b); //此方法为链接库中的方法 } public static void main(String[] args) { //调用 c Clibrary.INSTANTCE.print(); int x = Clibrary.INSTANTCE.add( 3 , 5 ); System.out.println(x); System.out.println( "==============" ); } } |
================>测试结果如下:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)