Skip to content

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