Java中如何调用C或C++程序
Java调用C或C++的程序通常需要使用Java Native Interface(JNI)技术。下面分别给出Java调用C和C++的例子。
Java调用C程序的例子
下面是一个简单的Java调用C程序的例子,其中C程序实现了一个简单的加法函数:
编译上述C代码生成动态链接库(dll或so文件),例如:
下面是Java代码,其中使用JNI库加载动态链接库,并调用其中的add方法:
在Java代码中,通过System.loadLibrary()方法加载生成的动态链接库,然后通过native方法调用其中的add函数。
Java调用C++程序的例子
Java调用C++程序的过程与调用C程序类似。下面是一个简单的Java调用C++程序的例子,其中C++程序实现了一个简单的乘法函数:
在C++中,由于函数名可能会被编译器进行名称修饰,因此需要使用extern "C"语句来声明函数为C语言风格的函数。
编译上述C++代码生成动态链接库,例如:
下面是Java代码,其中使用JNI库加载动态链接库,并调用其中的multiply方法:
在Java代码中,通过System.loadLibrary()方法加载生成的动态链接库,然后通过native方法调用其中的multiply函数。注意,在Java代码中仍然需要声明C++函数为C语言风格的函数。