Linux下java使用JNI调用C++
1.JNI介绍
JNI即Java Native Interface(Java本地接口),是一个协议,主要作用为:实现Java调用c/c++代码(类库),或者C/C++调用Java代码
2.准备JNI
先用javah,根据.java文件生成.h头文件,然后用C++实现这个接口
2.1先在目录下创建JNI.java文件
内容如下
//JNI.java文件
public class JNI{
//创建一个native接口方法,此方法在C++代码中实现
public native int doSomething();
//静态代码块,加载由C++代码生成的.dll动态链接文件(.dll相当于Java中的jar包吧...)
static{
System.loadLibrary("JNIDLL");
}
}
2.2使用javac编译JNI.java生成JNI.class,然后使用javah编译JNI.class得到JNI.h文件,步骤如下
- javac编译
javac JNI.java - javah编译JNI.class(不用带后缀名)
javah JNI - 打开JNI.h查看
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class JNI */
#ifndef _Included_JNI
#define _Included_JNI
#ifdef __cplus