首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JNI引见及简单实例

2012-09-07 
JNI介绍及简单实例JNI概念JNI是Java Native Interface的缩写,中文为JAVA本地调用。使用JNI, 可以调用用其他

JNI介绍及简单实例

JNI概念

JNI是Java Native Interface的缩写,中文为JAVA本地调用。

使用JNI, 可以调用用其他语言写成的库或程序, 尤其是C和C++。

好了,概念性的内容就不多介绍了, 直接进入实例


 JNI实例

实例环境: Eclispe3.7 + jdk1.6 + Visual Studio 2005

基本步骤:

1. 写Java的测试类(在eclipse中)

2. 使用javah 命令,生成C头文件(命令行方式)

3. 新建C++ 的Win32项目, 导入以上生成的头文件, 完善.cpp(Visual Studio 2005中)

4. 编译生成动态链接库(.dll)文件

5. 将dll 文件拷入"java.library.path" 对应的目录中

6. 运行步骤1的java类((在eclipse中) 就能看到效果了。

完成此例子, 不一定需要安装Eclipse和VS, 只不过借助这些工具会比较方便一些。

详细步骤:

1.  写Java的测试类

#include <stdio.h>#include <stdlib.h>#include "JniTest.h"JNIEXPORT void JNICALL Java_JniTest_hello(JNIEnv * a, jobject b){printf("HelloWorld,This is a JNI Test");}

4.编译生成动态链接库(.dll)文件

要编译生成  .dll ; 需要使用Java的一些头文件;比如 jni.h;

工具 --> 选项

左边选项中选   项目和解决方案--> VC++ 目录 点击后添加

\jdk路径\include\win32

\jdk路径\include

这两个路径

点击  生成--> 生成解决方案

在debug 目录下就能看见生成的  jnitest.dll 文件了

特别注意: 此 dll 的生成路径可能是外层的debug 目录下

在内层的debug 路径看到的是jnitest.dll.embed.manifest 等文件


5. 将dll 文件拷入"java.library.path" 对应的目录中

可以通过

System.out.println(System.getProperty("java.library.path")); 看可以有哪些目录

一般来说,可以把dll 拷入 WINDOWS\system32 下 或是 \jdk路径\bin 目录下。


6. 运行步骤1的java类((在eclipse中) 就能到在cpp文件里打印的日志效果了~~

热点排行