JNI初步学习

本文详细介绍了如何使用Java和C++通过JNI技术实现跨语言调用的过程,包括创建Java类、编译、生成头文件、创建C++ dll工程并实现函数,最终在Java中调用C++ dll中的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 编写java程序:这里以CTestHello 为例。  

代码1:
   
class CTestHello{  

public native void displayHelloWorld();//所有native关键词修饰的都是对本地的声明  

static
{   

//载入本地库 ,此处为动态加载 ,库的文件名可能为"libhello.dll"或者"libhello.so"
//如果" hello" 库还依赖于其他动态库,同样需要在此处声明,最好是按库生成依赖的先后顺序来加载,

//如果依赖的库不声明,jni调用将加载失败。


System.loadLibrary("hello");

}   

public static void main(String[] args)

{   

new CTestHello().displayHelloWorld();  

} 

}

2、编译CTestHello ,使用命令 javac CTestHello.java,生成 CTestHello.class文件。

3、使用命令javah  CTestHello,为CTestHello.java生成 CTestHello.h的jni头文件。

4、以CTestHello.h为头文件建立hello.dll的C++ dll工程,
【注意】需要将该工程添加 jdk 的 jin目录下的 win32
和include 包含路径,并且在hello.cpp头部添加 #include <jni.h> 和 #include "CTestHello.h"
在hello.cpp中实现 CTestHello.h 提供的函数声明。

5、编译hello.dll的C++ dll工程,将生成的 hello.dll拷贝到与CTestHello.class文件同级的目录。

6、使用命令java CTestHello,即可调用hello.dll的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值