Jni的操作流程
1. 首先在java类中声明一个native 方法
2. 使用javah命令生成包含native方法声明的c/c++头文件
3. 根据头文件编写c/c++源文件
4. 编译c/c++代码生成dll 动态库
5. 将dll 文件所在文件夹加入到path环境变量中
6. 在java类中是用system.loadLibrary方法 动态加载动态库 然后调用生命的native方法 (记住动态库的名字不要加文件可扩展名)
注意:不要给java 的native方法添加方法体 因为jni会自动根据native方法名匹配相应的动态库方法名 ,从而调用相应的c/c++方法。
使用jni的弊端:
1. 使用jni,那么相应的java程序将不是跨平台的了,如果移植到了别的平台上那么native代码就必须重新编写。
2. java十强类型的语言而c/c++不是写jni将会比写java纯程序更加困难
想要在c++中调用Java通过c++调用Java虚拟机可以实现该功能