eclipse和NetBeans環境下運行JNA操作備忘

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所示。
JNA編程之一:入門 - Jim - Jim Liang
圖5-1:配置項目屬性
 5.2 點擊“Properties”後,在彈出的“Properties for JnaTest”對話框中點擊左邊的“Java Build Path”,然後再點擊對話框中間的“Libraries”選項卡,最後點擊右邊的“Add External JARs...”按鈕,如圖5-2所示。
JNA編程之一:入門 - Jim - Jim Liang
圖5-2:爲工程添加擴展的JAR文件
 5.3 在彈出的“JAR Selection”對話框中找到第2步安裝的jna.jar文件,點擊“確定”按鈕,如圖5-3所示。
JNA編程之一:入門 - Jim - Jim Liang
圖5-3:選擇jna.jar文件
 
 6. 編譯並運行程序
運行結果如圖6-1所示。
JNA編程之一:入門 - Jim - Jim Liang
圖6-1:程序運行結果
 
 7. JNA編程基本語法解析
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編程詳解


發佈了14 篇原創文章 · 獲贊 13 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章