Chinaunix首页 | 论坛 | 博客
  • 博客访问: 388136
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1741
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-21 22:46
文章分类
文章存档

2014年(22)

2013年(45)

分类: Java

2014-03-04 15:23:55

2、从一个简单例子开始

Java通过JNI调用C++/C,通过个简单例子说明,计算两个数之和。

Java文件:Add.java

public class Add{

   static {

       system.loadLibrary("add_jni");

   }

   public static synchronzied native CalcAdd_native(int a,int b);

    public int CalcAdd(int a,int b)

    {

        return CalcAdd_native (a,b);

    }

}

对编译生成的.class 文件可以用javah自动生成相应的jni文件声明,进入到生成的CalcNative.class 文件下,javah.exe  -classpath path -jni CalcNative

Calc_add.cpp文件

JNIEXPORT jint JNICALL Java_Calc_add_1native (JNIEnv *env,jint a,jint b)

{      

return (a + b);

}

生成的JNI接口名称是Java_Calc_add_1native,其中Java是固定的关键字下面依次是包名,接口名,包名和包名,包名和接口名之间有”_”隔开,因为接口名称里本身就带了”_”,所有用”_1”,表示是接口内的符号,有点转义字符的意思。
阅读(1888) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~