clion 引用dll_用CLion实现本地方法并给java调用

本文介绍了如何使用CLion创建C++动态链接库,并通过Java Native Interface (JNI) 让Java调用本地方法。首先创建一个包含native方法的Java类,然后用javah生成C头文件。接着在CLion中配置C++项目,选择合适的编译器,将头文件添加到CMakeLists.txt中,并实现native方法。完成编译后,将生成的dll库引入Java项目,通过System.loadLibrary加载,最后在Java中调用本地方法。
摘要由CSDN通过智能技术生成

众所周知,PHP是世界上最好的语言,java排第二,因为PHP无所不能。但是在某些场景下java还要调用本地方法来提高执行的效率,故java只能排第二。java提供了jni(Java Native Interface)来实现在java中调用本地方法。本地方法在java中用native关键字标识,它是一种和机器有关的方法,一般用C或C++实现,而本地方法不是跨平台的,不同的平台需要重新编译。jdk中就有不少地方用了native方法,比如Object类中的hashCode方法:

public native int hashCode();

下面开始使用jni:

(一)创建一个带有native方法的类

package com.example.jni;

public class JNIObject {

private String name;

public JNIObject(String name) {

this.name = name;

}

public String getName() {

return this.name;

}

public int add(int param1, int param2) {

return param1 + param2;

}

public int sub(int param1, int param2) {

return param1 - param2;

}

public native int multi(int param1, int param2);

public native int div(int param1, int param2);

}

我们假定加减法执行效率高可以直接用java实现,而乘除法比较慢,需要用C语言来实现。写好了类我们先编译,把java文件编译成class文件,然后再用javah命令生成c头文件,执行javah命令时要注意,我们需要先把当前的工作目录切换到class所在的根目录,就是包的第一级目录所在的目录。比如我们的包名是com.example.jni,那么我们需要切换到com目录所在的目录,执行的命令格式是javah [-option] 包名.类名

javah -jni com.example.jni.JNIObject

成功后会在当前的工作目录生成一个.h的文件(com_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值