Intellij Java JNI 呼叫 C++
阿新 • • 發佈:2021-12-02
也可以用 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>會報紅
右擊生成