JNI初体验

一、使用过程:

编写java代码->编译java代码->利用javah 命令生成生成相应的c/c++头文件->编写c/c++代码->利用vs命令制作dll共享库->运行java程序

二、实例使用

(1)编写java代码

public class JNITest {
	//声明本地方法,将在cpp文件中实现
    public native static void dispHelloWorld();
    public static void main(String[] args) {
    	System.loadLibrary("helloworld");
        dispHelloWorld();
    }
}

(2)利用javah命令生成头文件

首先是进入java文件的工作目录,然后产生头文件


头文件的内容如下


/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class jnitest_JNITest */

#ifndef _Included_jnitest_JNITest
#define _Included_jnitest_JNITest
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     jnitest_JNITest
 * Method:    dispHelloWorld
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_jnitest_JNITest_dispHelloWorld
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif
(3)编写c++代码

/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jnitest_JNITest.h"
#include <stdio.h>

JNIEXPORT void JNICALL Java_jnitest_JNITest_dispHelloWorld
  (JNIEnv *env, jobject){//共同参数,可以使用env调用jni参数
	  printf("hello world,I am using JNI function");
	  return;
}

(4)利用vs的命令提示工具生成dll共享库,如果JDK是64位就是用64位的命令提示工具


(5)配置dll文件路径



(6)运行成功

java本地类型一般是java类型前加一个j



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值