生成自定义native方法

编写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文件拷贝到对应位置即可

猜你喜欢

转载自blog.csdn.net/believe2017slwx/article/details/79884191