阅读量:4
要在Java中调用C++程序,您可以使用Java Native Interface (JNI)
- 创建一个C++文件(例如
example.cpp):
#include
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++!
请注意,这只是一个简单的示例。在实际项目中,您可能需要处理更复杂的数据类型、错误处理和线程管理。
以上就是关于“java如何调用c++程序”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm