jna的简单测试

================>helloworld.h 文件:

================> helloworld.c 文件:

================> 编译方法1:生成libhello.so 文件

================>编译方法2:生成libhelloworld.so 文件

================>★★★★把生成的文件放到  /usr/lib64/ 下

================>java工程目录如下:

================> 测试代码如下:

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



================>helloworld.h 文件:

 

#ifndef  _HELLOWORLD_H
#define  _HELLOWORLD_H
void print();
int add(int a, int b);



#endif

 ================> helloworld.c 文件:

 

#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工程目录如下:

================> 测试代码如下:

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 2017-02-07 17:02  vmkash  阅读(439)  评论(0编辑  收藏  举报

导航