Java调用c++
时间: 2023-06-29 18:10:02 浏览: 124
Java调用C++
Java可以通过JNI(Java Native Interface)技术调用C++编写的动态链接库。下面是一个简单的示例:
1. 编写C++代码
假设我们有一个C++函数,它将两个整数相加并返回结果:
```c++
// add.cpp
#include <iostream>
using namespace std;
extern "C" {
int add(int a, int b) {
return a + b;
}
}
```
2. 生成动态链接库
使用C++编译器将add.cpp编译成动态链接库,例如在Linux下可以执行以下命令:
```
g++ -shared -fPIC add.cpp -o libadd.so
```
这将生成一个名为libadd.so的动态链接库。
3. 在Java中调用C++
在Java中,我们可以使用JNI技术来加载动态链接库并调用其中定义的函数。下面是一个简单的示例:
```java
// Main.java
public class Main {
static {
System.loadLibrary("add");
}
public static void main(String[] args) {
int sum = add(1, 2);
System.out.println("1 + 2 = " + sum);
}
private static native int add(int a, int b);
}
```
注意这里使用了static代码块来加载名为libadd.so的动态链接库,并且定义了一个native方法add来调用C++中的add函数。
4. 编译Java程序并运行
使用Java编译器编译Main.java,并将生成的class文件和libadd.so放在同一目录下,然后运行Main类即可:
```
javac Main.java
java Main
```
输出结果为:
```
1 + 2 = 3
```
这说明Java成功调用了C++中的add函数并获得了正确的计算结果。
阅读全文