1. 程式人生 > 其它 >Intellij Java JNI 呼叫 C++

Intellij Java JNI 呼叫 C++

也可以用 JNA,但效能沒有 JNI好。JNA的Demo沒有做,可以參考(https://www.bilibili.com/video/BV1xU4y1F7Ep/?spm_id_from=autoNext

JNI參考(https://www.runoob.com/w3cnote/jni-getting-started-tutorials.html

建立 Java專案

package com.vipsoft.demo;

import java.util.Date;

public class JNIDemo {

    public native void testHello(long currentTime);

    
public static void main(String[] args) { //載入C檔案 System.loadLibrary("TestJNI"); JNIDemo jniDemo = new JNIDemo(); jniDemo.testHello((new Date()).getTime()); } }

開啟目錄

生成 jni檔案

javah -classpath . -jni com.vipsoft.demo.JNIDemo

生成標頭檔案

2. 建立一個C++專案

右擊將com_vipsoft_demo_JNIDemo.h載入到 VS中

新建原始檔在【原始檔】目錄上右擊選擇【新建項】


TestJNI.CPP

#include "pch.h"
#include "com_vipsoft_demo_JNIDemo.h"

JNIEXPORT void JNICALL Java_com_vipsoft_demo_JNIDemo_testHello
(JNIEnv*, jobject, jlong currentTime) {
    printf("This is C++ print => " + currentTime);
}

右擊專案屬性,新增 JDK目錄,否則<jni.h>會報紅

右擊生成