JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。下面用一个Demo实现通过JNI,Java如何调用C&C++的库文件(Windows下是dll文件,Linux下是so文件)。
本文在Windows下实现,因此调用的是dll文件,期间也会说明linux下调用so文件有什么不同之处,环境如下:
- 操作系统:Win10 Pro
- JDK:1.7(1.8也完全ok)
- IDE:Jetbrains IDEA 2016.3 Community
一、安装GCC环境
Windows下,一般选择安装MinGW,下载地址:下载地址,安装好后,将MinGW安装目录下的bin目录加入PATH中,然后打开命令行,输入gcc -v,出现如下信息即证明安装完成:
二、JNI Demo
首先用IDEA创建一个Java工程,在src目录下创建一个包,包名为cn.hust.demo,如图:
在该包下编写类TestAdd,我们要实现的功能是两个数相加:package cn.hust.demo; // Created by LCJ on 2017.7.21. public class TestAdd { static { System.loadLibrary("Add"); } private native int add(int a, int b); public stati