Mac IDEA+CLION jni Hello World
新建一个空的javaweb-jni项目,并在IDEA添加拓展工具:
添加拓展工具:
Program: $JDKPath$/bin/javah
Arguments: -jni -classpath $OutputPath$ -d ./jni/ $FileClass$
Working directory: $ProjectFileDir$

新建org.javaweb.jni.Test.java:
package org.javaweb.jni; public class Test { static { System.loadLibrary("test"); } private static native String exec(String cmd); public static void main(String[] args) { System.out.println(exec("123")); } }生成JNI头文件测试:
成功生成的头文件会存放在当前项目根目录下创建jni目录:
Clion新建C项目:
复制jni.h和jni_md.h到Clion项目目录(jdk1.8.0_144.jdk换成本地的JDK版本):
cd /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/
cp include/jni.h include/darwin/jni_md.h /Users/yz/CLionProjects/javaweb-jni
复制idea中的org_javaweb_jni_Test.h到Clion目录修改#include <jni.h>为#include "jni.h"

新建org_javaweb_jni_Test.c并编译lib库:
编译test库,库名称必须是“lib***.jnilib”。
gcc org_javaweb_jni_Test.c -shared -fPIC -o libtest.jnilib
复制编译后的test库到java动态链接库:
cp libtest.jnilib /Users/yz/Library/Java/Extensions/
通过System.getProperty("java.library.path")可以获取链接库目录,也可以自行设置java.library.path的路径。
最后执行Test.java:

注意:JDK10移除了javah,需要改为javac加参数。例如:javac -h -cp jna.jar com/sun/jna/Function.java
参考: