您的位置:首页 > 编程语言 > C语言/C++

Java调用C/C++动态库so

2015-07-13 22:58 561 查看
参考网址

关于java调用C接口时,类型的转换,如char* /article/1771894.html

JNI的替代者—使用JNA访问Java外部功能接口 http://www.cnblogs.com/lanxuezaipiao/p/3635556.html

注意事项:

① 下载jna.jar包 ,地址 http://download.csdn.net/detail/geqiandebei/8896461

② ***C/C++动态库,和java程序放在同一目录,Linux下需在动态库so名字前加lib,如test.so改为libtest.so

③loadlibrary函数加载的库,不带后缀

有出现 “
Exception in thread "main" java.lang.UnsatisfiedLinkError ” 错误的,可能是没有使用JNA的缘故

基本程序框架如下:

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;

public class show {
	public interface CLibrary extends Library {
	CLibrary INSTANCE = (CLibrary)
	Native.loadLibrary("Test",CLibrary.class);
	
	public  String show2(String data);
	public  void show1(String a ,String b );
	public  String p(); 
	public  int add(int a,int b);
	}
    public static void main(String[] args) {
		String a="geqian" ;
		String b="debei";
		show t=new show();
		CLibrary.INSTANCE.show1(a,b);
		System.out.print("a="+a);
		System.out.print(CLibrary.INSTANCE.add(1,2));
		System.out.print(CLibrary.INSTANCE.p());
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: