JNI编程(C/C++)
文章目录
第1节:快速上手
在java类中定义JNI
在类中使用native声明一个没有方法体的方法
// file location: $ProjectDir/src/pers/h01c/jni/helloJni.java
package pers.h01c.jni;
public class helloJni {
public native void helloWorld(String inputArg);
public native static String staticHelloWorld(String inputArg);
}
使用Java的javah工具生成.h
$JAVA_HOME/bin/javah -jni -classpath $ProjectDir/src/ -d $ProjectDir/jni/ pers.h01c.jni.helloJni
使用javah -help获得帮助文档
- Usage:
javah [options] <classes>
- option:
-d <dir>: Output directory # 指定生成.h的文件夹
-jni: Generate JNI-style header file # 生成jni头
-classpath/-cp <path>: Path from which to load classes #指定从哪里寻找这个类
- <class>:
specify with their fully qualified names #需要指定类的全名
生成出来的.h文件(路径是$ProjectDir/jni/pers_h01c_jni_helloJni.h)如下
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class pers_h01c_jni_helloJni */