Java通过JNI调用C++程序

  JNI是Java Native Interface的缩写,中文为JAVA本地调用。使用JNI可以很方便的用我们的Java程序调用C/C++程序。很多时候,某些功能用Java无法实现,比如说涉及到底层驱动的一些功能,这时候我们就可以利用JNI来调用C或者C++程序来实现,这就是JNI的强大之处。但是JNI也有它的缺点,使用java与本地已编译的代码交互,,通常会丧失平台可移植性。

  下面是一个JNI例子,调用C++输出”hello world”:

第一步:创建Java类,在里面定义一个本地方法(用native关键字修饰的方法)

  public native void sayHello();

第二步:使用javah命令(javah 类的全路径)生成本地方法的C++头文件

  在DOS窗口中进入工程所在目录,然后执行javah com.test.TestNative命令,执行完之后就会在当前目录生成一个后缀名为.h的头文件,如com_test_TestNative.h,这个头文件是根据包名和类名来命名的。

#include <jni.h>#ifndef _Included_com_test_TestNative 6 #define _Included_com_test_TestNative 7 #ifdef __cplusplus { * Class:com_test_TestNative12 * Method: sayHello13 * Signature: ()VJNIEXPORT void JNICALL Java_com_test_TestNative_sayHello16 (JNIEnv *, jobject);17 18 #ifdef __cplusplus19 }把你的脸迎向阳光,那就不会有阴影

Java通过JNI调用C++程序

相关文章:

你感兴趣的文章:

标签云: