JNI Java调用cpp代码
生成头文件
Hello.java
java
package com.zbzly.jni.test;
public class Hello {
public native void hello();
// lib库的位置
static {
System.loadLibrary("lib/hello");
}
}
生成头文件
bash
javac Hello.java -h .
创建cpp编写代码
cpp
#include "com_zbzly_test_Hello.h"
#include <stdio.h>
/*
* Class: com_zbzly_test_Hello
* Method: hello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_zbzly_test_Hello_hello
(JNIEnv *, jobject){
printf("hello jni test\n");
}
生成动态链接库
bash
gcc -I D:\java\jdk8u432-full\include -I D:\java\jdk8u432-full\include\win32\ -shared -o hello.dll ./src/com/zbzly/test/com_zbzly_test_Hello.cpp
cmake编译方式
源代码
bash
https://gitee.com/zhong-liuyang/jni.git