转载自:http://www.iteye.com/topic/304594
一、关于JNI
JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。
二、JNI在Windows环境的实现:
1、在Java程序代码中对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具体实现。
新建TestHello.java, 输入以下内容:
2. 编译
在cmd命令行中,javac TestHello.java编译生成TestHello.class文件, javah TestHello生成TestHello.h头文件(即为jni代理stub的接口)
3. 创建动态库(我用的是VC++ 6.0)
1>新建一个动态库
2>打开项目所在的文件目录,将步骤2中生成的TestHello.h文件复制到此目录。点击左边中间的FileView,切换到文件浏览模式。在Header Files上点击右键,选择Add Files to Folder…。
选择TestHello.h文件,点击OK。
3> 打开StdAfx.h, 在最后添加: #include "TestHello.h"
4>打开TestHello.cpp 在最后添加以下代码:
5>在VC的菜单上选择Tools-Options…,打开选项对话框。在Directories文件夹,添加上jdk所在文件夹下的include和include\win32文件夹。
点击VC上的菜单项Build-Build All,生成TestHello.dll。
6> 将VC项目Debug文件夹中的TestHello.dll复制到TestHello.class所在的文件夹下。
7>在命令行下输入java TestHello