java调用dll

1 篇文章 0 订阅
0 篇文章 0 订阅

java调用dll
第一步 创建名为JniDemo的Java工程并添加JniDemo.java
第二步 在Java类中添加native方法

 public native static void set(int i);
 public native static int get();

第三步 使用javah命令生成头文件
1.切换到 D:\Workspaces\myeclipse2017\JniDemo\src
2.执行javah命令

javah -classpath D:\Workspaces\myeclipse2017\JniDemo\bin -jni cn.test.JniDemo

在这里插入图片描述
命令执行完后,会在src下生成 cn_test_JniDemo.h头文件,f5刷新项目即可看到
第四步 创建DLL项目,使用vs2017
在这里插入图片描述
第五步 拷贝cn_test_JniDemo.h,jni.h,jni_md.h至vs工程cpp文件目录下
(注意:其中jni.h在jdk的include目录下,jni_md.h在jdk的include\win32目录下,在jdk里找到后拷贝过来)
在这里插入图片描述
用vs打开拷贝cpp目录下的cn_test_JniDemo.h,#include <jni.h> 改为 #include "jni.h"后保存
在这里插入图片描述
第六步 在Jni.cpp中实现C++方法

// JniDemo.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include "cn_test_JniDemo.h"

int number=0;

/*
 * Class:     cn_test_JniDemo
 * Method:    set
 * Signature: (I)V
 */
JNIEXPORT void JNICALL Java_cn_test_JniDemo_set
(JNIEnv *, jclass, jint i) {
	number = i;
}

/*
 * Class:     cn_test_JniDemo
 * Method:    get
 * Signature: ()I
 */
JNIEXPORT jint JNICALL Java_cn_test_JniDemo_get
(JNIEnv *, jclass) {
	return number;
}

第七步 生成64位dll库
1.如下图选中
在这里插入图片描述
2.如下图生产dll后在
c:\Users\liubo\source\repos\JniDemo\x64\Release\JniDemo.dll
在这里插入图片描述
第八步 把64位dll库拷贝至Java项目根目录下,修改JniDemo.java

package cn.test;

public class JniDemo {

	static{
		System.loadLibrary("JniDemo");
	}
	public native static void set(int i);
    public native static int get();
    public static void main(String[] args) {
        set(59134);
        System.out.println(get());
    }
    
}

第九步 运行
在这里插入图片描述

十.附加
java项目源码地址

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值