Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java调用c++

作者:哥伤不起   发布日期:2026-06-05   浏览:71

// Java 代码
public class Main {
    // 声明一个本地方法,该方法将在 C++ 中实现
    public native void callCppFunction();

    // 加载包含 C++ 实现的库
    static {
        System.loadLibrary("nativeLib");
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.callCppFunction();  // 调用本地方法
    }
}
// C++ 代码 (nativeLib.cpp)
#include <jni.h>
#include <iostream>

// 定义与 Java 方法对应的 C++ 函数
extern "C" JNIEXPORT void JNICALL
Java_Main_callCppFunction(JNIEnv *env, jobject /* this */) {
    std::cout << "Hello from C++!" << std::endl;
}

解释说明:

  1. Java 代码:

    • native 关键字用于声明一个本地方法,表示这个方法的实现不在 Java 中,而是在其他语言(如 C++)中。
    • System.loadLibrary("nativeLib"); 用于加载包含 C++ 实现的动态链接库(例如 .dll.so 文件)。库的名称为 nativeLib
    • main 方法中,创建 Main 类的实例并调用 callCppFunction 方法,该方法会触发 C++ 代码的执行。
  2. C++ 代码:

    • 使用 extern "C" 来防止 C++ 编译器对函数名进行修饰,确保与 Java 端的函数签名匹配。
    • JNIEXPORTJNICALL 是 JNI(Java Native Interface)宏,用于正确导出和调用本地方法。
    • JNIEnv* env 是指向 JNI 环境的指针,提供了许多用于操作 Java 对象和调用 Java 方法的函数。
    • jobject 是指向当前 Java 对象的引用(即 this),在静态方法中可以是 jclass
    • std::cout 用于输出信息到控制台。

通过这种方式,Java 程序可以调用 C++ 编写的代码。

上一篇:java 日期加一天

下一篇:java hashmap 遍历

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

jsonobject.tojavaobje

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站