java JNI 初步学习

  其实java调用C++的程序这个过程很简单,网上也是一大把的资料可以参看,我只是初步的了解学习下。要想让你的java中的方法在c++中实现就必须将这个方法用native关键字修饰。

  在启动文件的地方用静态块来加载链接库,通过System.loadLibrary("")这个方法

比如: 有java文件

   package lhb.demo;


public class Demo {
    public  native void printlncount(); // 本地方法
    
    static{
    System.loadLibrary("TestJNI"); // 动态连接库文件的名字
    }
    
    public static void main(String[] args) {
new Demo().printlncount();
}
}


将这个class文件生成c++的头文件 用javah。命令如:javah -jni lhb.demo.Demo  

生成一个.h的头文件 然后用VC++工具创建一个动态链接库的空项目将文件导入C++工程中、

注意 。这里要把java安装目录下的include文件下的jni.h 和win32文件下的.h文件COPY到VC++安装目录下的Vc98的include文件下,因为编译时需要这些头文件

在C++工程创建一个.c的文件 并导入java生成的那个头文件

 比如: 对java中的方法做实现

#include "lhb_demo_Demo.h"
#include <stdio.h>


JNIEXPORT void JNICALL Java_lhb_demo_Demo_printlncount(JNIEnv * env, jobject job)
{
int i =0 ;
for( ;i<10;i++){
printf("hello word\n");
}
}

之后编译,将生成的DLL复制到java工程下即可。

  对于方法的参数的问题我还在研究中



   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值