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("==============");
    
}

 

 ================>测试结果如下:





posted on   vmkash  阅读(445)  评论(0编辑  收藏  举报

编辑推荐:
· 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)

导航

< 2025年1月 >
29 30 31 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 29 30 31 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示