- JNI是由C语言定义接口的,JNI通过函数名找函数入口,执行函数里的内容。这和函数用什么语言生成的并没有关系。只要保证函数名称符合JNI的协议。而使用C++要注意的是C++默认生成的函数名称和你写在源文件中的名称并不相同,因为C++要处理函数重载,会在函数名称中加上参数信息,这称为name mangling。解决方法是定义函数时在前面加上extern "C"修饰,告诉编译器这函数要被C调用(当然,其实是JNI)。本质没有什么区别,一个是JNI调C,一个是JNI调C,C再掉C++,这样理解就简单了~ JNI是由C语言定义接口的,JNI通过函数名找函数入口,执行函数里的内容。