JNI调用

it2023-03-19  75

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复制到项目下

最新回复(0)