1,eclipse下操作
轉自 點擊打開鏈接
1. 下載jna.jar
到JNA官網下載最新版本的“jna.jar”,當前的最新版是4.1.0(to 2015.08)。鏈接如下:
2. 安裝jna.jar
將jna.jar文件移動到JKD的安裝目錄的子目錄,我的是:/opt/java/jdk1.7.0/lib。這個jna.jar文件也可以放在任何目錄,比如你正在開發的Java工程目錄。
3. 創建eclipse-java工程
啓動eclipse,並新建一個Java工程JnaTest。
4. 添加Java源文件
在JnaTest工程中添加Java源文件HelloJna.java,並在源文件中輸入如下代碼:
package myjava.jna.test;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
public class HelloJna
{
//定義接口CLibrary,繼承自com.sun.jna.Library
public interface CLibrary extends Library
{
//定義並初始化接口的靜態變量
CLibrary Instance=(CLibrary)Native.loadLibrary((Platform.isWindows()?"msvcrt":"c"),CLibrary.class);
//printf函數聲明
void printf(String format, Object... args);
}
public static void main(String[] args)
{
//調用printf打印信息
CLibrary.Instance.printf("Hello, JNA!\n");
}
}
提示:上述代碼主要是參考JNA官網的例程。
5. 配置工程引用jna.jar庫
5.1 在eclipse左邊的Workspace項目管理器中右擊項目JnaTest,選擇屬性“Properties”,如圖5-1所示。
圖5-1:配置項目屬性
5.2 點擊“Properties”後,在彈出的“Properties for JnaTest”對話框中點擊左邊的“Java Build Path”,然後再點擊對話框中間的“Libraries”選項卡,最後點擊右邊的“Add External JARs...”按鈕,如圖5-2所示。
圖5-2:爲工程添加擴展的JAR文件
5.3 在彈出的“JAR Selection”對話框中找到第2步安裝的jna.jar文件,點擊“確定”按鈕,如圖5-3所示。
6. 編譯並運行程序
運行結果如圖6-1所示。
7.1 自定義一個接口,該接口繼承(擴展)自com.sun.jna.Library接口,如上面示例代碼中的CLibrary接口。
7.2 在自定義的接口中聲明將要調用的函數原型,這些函數原型必須要在即將加載的動態庫中有對應的實例。如上面示例代碼中的printf函數聲明。如果是在微軟的Windows環境下,該函數存放在msvcrt.dll動態庫中;如果是在Linux環境下,該函數存放在libc.so動態庫中。
7.3 在調用函數之前,先將接口實例化,並調用Native.loadLibrary對接口的實例初始化。如上面示例代碼中的Instance實例初始化。
7.4 在上面的操作都正常完成後,即可在有需要的地方調用對應的C/C++函數。
2,NetBeans下操作
注:maven下操作和一般的工程區別在於jna的添加方式不一樣,一般工程點項目右鍵,庫添加jar包選jna。maven下爲:
1.依賴關係上右鍵 添加依賴,搜索輸入jna,從倉庫中選擇一個添加
2. 將DLL文件拷貝到工程根目錄。
3.新建com.sun.jna包,新建調用類進行測試
調用代碼主要是建立接口,然後調用函數。可參考以下內容:
1.JNI的替代者—使用JNA訪問Java外部功能接口
2.JNA—JNI終結者
3.C++DLL編程詳解