用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 |
|