编写java native 方法
package com.test.nativemethod;
public class OwnNative {
static{
System.load("E:\\project_sync_repository\\learn-java\\learnAdvanced\\src\\main\\resources\\java_native.dll");
}
public native static void say();
public native static int sum(int a,int b);
}
生成*.h头文件
cd E:\project_sync_repository\learn-java\learnAdvanced\target\classes
javah -classpath ./ -d ./ com.test.nativemethod.OwnNative
依据*.h头文件,编写C++实现代码
- 建立dll工程(工程名无要求,最终会作为dll文件名)
#include "com_test_advanced_OwnNative.h"
#include <iostream>
using namespace std;
JNIEXPORT void JNICALL Java_com_test_nativemethod_OwnNative_say(JNIEnv *, jclass){
printf("hello world");
}
JNIEXPORT jint JNICALL Java_com_test_nativemethod_OwnNative_sum(JNIEnv *, jclass, jint a, jint b){
return a + b;
}
- 建立jni.h(拷贝%JAVA_HOME%/include/jni.h,因读写权限问题在vs下建立同名文件,拷贝文件内容)
- 建立jni_md.h(拷贝%JAVA_HOME%/include/win32/jni_md.h,因读写权限问题在vs下建立同名文件,拷贝文件内容)
- 将javah生成的com_test_advanced_OwnNative.h拷贝至工程中
- 修改com_test_advanced_OwnNative.h,引入jni.h和jni_md.h
- 编写*.cpp文件,实现com_test_advanced_OwnNative.h中的相关方法
生成*.dll文件
- 配置x64
- 配置管理器、新建x64
- Debug 该为Release
- 生成解决方案
把生成*.dll文件拷贝到对应位置即可