Jni程序开发的一般操作步骤如下:
l 编写java中的调用类
l 用javah生成c/c++原生函数的头文件
l c/c++中调用需要的其他函数功能,实现原生函数(原则上可以调用任何资源)
l 将项目依赖的所有原生库和资源加入到java项目的java.library.path
l 生成java程序
l 发布java应用和dll库
以下的所有工程项目代码和文档:
http://download.csdn.net/detail/chenchendf/8338173
1. java:
eclipse工程代码:testJni.zip
TestHello.java:
package com.jni; public class TestHello { static{ System.loadLibrary("TestHello"); //已经在环境变量中添加dll文件的路径:E:\workspace\testJni\dll }
public static native void hello(String msg);
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub hello("Hello, Kimmi!");
} } |
注意:
1) javah -classpath E:/workspace/testJni/bin TestHello
(1) 使用classpath参数指定编译后的class文件的路径,否则会提示找不到类
(2) TestHello 类要使用全路径,即前面要添加其包名,此处因为是放在默认包中,所以没有添加。
2). dll文件所在目录必须在系统环境变量中添加,否则无法读取;
3). 使用eclipse测试时,生成dll之后,需要重启eclipse
2. c++
Microsoft Visual Studio 2010工程代码: TestHello_VC.zip
注意:
1) 使用过程中需要用到jni.h和 jni_md.h,在java安装目录的include目录下,需要copy到当前工程目录下
2)visual studio2010需要修改两个地方,否则编译会出错:
“项目”-》“属性”-》“配置属性”:
3. 一切正常后,在eclipse中运行,Run as->Java Application: 结果:
参考:
http://blog.csdn.net/skywalker256/article/details/4677644
http://www.iteye.com/topic/304594#814127