用JNI调用C或C++动态联接库入门
HelloWorld.java:
1 | package ocr; |
TestDLL.java:
1 | public class TestDLL { |
说明:
①是java本地方法申明;
②装入动态链接库,”HelloWorld”是要装入的动态链接库名称。
注:动态库链接位置设置,放在system32下面或者将dll所在文件夹设置为系统环境变量
假如,动态库HelloWorld.dll是存在的话,上面的用法是OK的!
假如,动态库 HelloWorld.dll不存在的话,则先将java文件编译成.class文件,然后在将class转成.h文件,然后c++在把那个.h文件引入进来,操作如下:
打开CMD:
1、编译成class文件:
1 | javac HelloWorld.java |
2、转成h文件:
1 | javah ocr.HelloWorld |
ocr_HelloWorld.h文件:
1 | /* DO NOT EDIT THIS FILE - it is machine generated */ |
在新建一个HelloWorld.cpp,将其.cpp编译成dll文件,若有需要额外头文件,请到jdk安装目录下面include文件夹获取相关,如:C:\Program Files (x86)\Java\jdk1.5.0_22\include:
1 |
|