JNI调用
目录:
JNI调用环境准备开始
环境
操作系统: Win 10
准备
安装visual studio 2019
开始
新建Java项目,新建包cn.foolishbird.JNIDemo, 新建类HelloWorld
package cn
.foolishbird
.JNIDemo
;
import java
.nio
.file
.FileSystems
;
public class HelloWorld {
public native void displayHelloWorld();
static {
try {
System
.load(
FileSystems
.getDefault()
.getPath("build/hello.dll")
.normalize()
.toAbsolutePath()
.toString());
} catch (UnsatisfiedLinkError e
) {
e
.printStackTrace();
}
}
public static void main(String
[] args
) throws Exception
{
new HelloWorld().displayHelloWorld();
}
}
cd到项目src目录,执行命令: javah -jni cn.foolishbird.JNIDemo.Sample
查看src目录下是否有对应.h文件
用visual studio 新建dll项目
将生成的.h文件复制到头文件目录下
源文件添加实现
实现文件
/* HelloWorldImp.c */
#include "pch.h"
#include <jni.h>
#include "cn_foolishbird_JNIDemo_HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_cn_foolishbird_JNIDemo_HelloWorld_displayHelloWorld
(JNIEnv *, jobject)
{
printf("Hello world!\n");
return;
}
打包成.dll, 这里注意,因为我jdk是64位打包dll也必须是64位
注意jni.h 需要添加到环境里面,visual studio 右键项目->属性
选择生成->生成解决方案 将build复制到项目下