JNI的使用

本文详细介绍了如何使用Java的JNI机制来调用C或C++编写的DLL动态链接库。首先创建包含本地方法的Java类,然后通过`javah`命令生成对应的头文件,接着在C/C++环境中实现头文件中的方法并编译为DLL。最后在Java类中加载DLL,并提供对外部调用的接口。通过这个过程,实现了Java与C/C++的跨语言交互。
摘要由CSDN通过智能技术生成

JAVA语言通过JNI机制支持调用C\C++语言编写的DLL文件。

第一步:

创建一个class文件

package com.company;
 

public class NativeMethod {
    // 定义一个本地方法 实现是在dll文件中实现
    private native void doSome0(long input);

}

第二步:

build整个工程,IDEA中右键NativeMethod文件进入所在位置通过地址栏运行cmd。如下图可以看到NativeMethond.class在D:\LXT\project\java\out\production\java\com\company目录下,然后执行cd ..命令两次,到D:\LXT\project\java\out\production\java,即进入根包目录的上层目录即可
 

 执行javah命令

javah -classpath . -jni com.company.NativeMethod


在当前目录下就会生成名为com_company_NativeMethod.h的头文件。在公司中基本流程是其他同事给你方法名,入参,然后自己按照上面的步骤生成头文件给同事让他们实现,完事之后给你dll文件。

 第三步:

在NativeMethod类中添加公外部调用的方法和加载dll文件:

package com.company;
 

public class NativeMethod {
    // 定义一个本地方法 实现是在dll文件中实现
    private native long doSome0(long input);

    // 定义一个供外部调用的方法
    public long doSome(long input){
        return doSome0(input);
    }
    static {
        // 加载实现了native函数的动态库,只需要写dll文件的名字
		System.loadLibrary("NativeMethod");
	}

}

第四步:

 调用即可

NativeMethod a = new NativeMethod();
long result = a.doSome(111l);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值