java如何调用c++程序
导读:要在Java中调用C++程序,您可以使用Java Native Interface (JNI 创建一个C++文件(例如example.cpp): #include <iostream> extern "C" {...
要在Java中调用C++程序,您可以使用Java Native Interface (JNI)
- 创建一个C++文件(例如
example.cpp
):
#include <
iostream>
extern "C" {
#include "example.h"
}
JNIEXPORT void JNICALL Java_com_example_myapp_MainActivity_printHelloFromJNI(JNIEnv *env, jobject obj) {
std::cout <
<
"Hello from C++!" <
<
std::endl;
}
- 创建一个Java头文件(例如
example.h
):
#ifndef _EXAMPLE_H
#define _EXAMPLE_H
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_com_example_myapp_MainActivity_printHelloFromJNI(JNIEnv *env, jobject obj);
#ifdef __cplusplus
}
#endif
#endif // _EXAMPLE_H
- 使用
javac
编译C++文件,并使用javah
生成Java头文件:
javac example.cpp -I${
JAVA_HOME}
/include -I${
JAVA_HOME}
/include/linux
javah -jni Java_com_example_myapp_MainActivity_printHelloFromJNI
- 创建一个Java类(例如
MainActivity.java
):
package com.example.myapp;
public class MainActivity {
static {
System.loadLibrary("example");
}
public native void printHelloFromJNI();
public static void main(String[] args) {
MainActivity mainActivity = new MainActivity();
mainActivity.printHelloFromJNI();
}
}
- 编译Java类并运行:
javac MainActivity.java
java -Djava.library.path=. MainActivity
这将输出:
Hello from C++!
请注意,这只是一个简单的示例。在实际项目中,您可能需要处理更复杂的数据类型、错误处理和线程管理。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: java如何调用c++程序
本文地址: https://pptw.com/jishu/711123.html