参考网址
关于java调用C接口时,类型的转换,如char* http://blog.youkuaiyun.com/zht666/article/details/22786123
JNI的替代者—使用JNA访问Java外部功能接口 http://www.cnblogs.com/lanxuezaipiao/p/3635556.html
注意事项:
① 下载jna.jar包 ,地址 http://download.youkuaiyun.com/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());
}
}