我們團隊目前開發的產品是用java語言編寫的,大家都知道,java編寫的代碼隨便都可以被反編譯,導致別人可能會看到你“裸奔”的樣子。所以,為了避免這種安全隱患,團隊最終商定,將部分核心代碼改用c語言編寫,封裝為dll,再由java調用。 於是乎,我們就開始jna初探。今天通過各種百度,終於做了個例子 ...
我們團隊目前開發的產品是用java語言編寫的,大家都知道,java編寫的代碼隨便都可以被反編譯,導致別人可能會看到你“裸奔”的樣子。所以,為了避免這種安全隱患,團隊最終商定,將部分核心代碼改用c語言編寫,封裝為dll,再由java調用。
於是乎,我們就開始jna初探。今天通過各種百度,終於做了個例子出來,在此做個記錄,以備後路之需。
1、構造一個dll
由於本機的vs2015沒有安裝c++模塊,所以採用Dev-C++開發,具體步驟如下:
1.1、新建項目,選擇DLL,C項目
1.2、刪除自動生成的代碼文件,編寫一個簡單的函數
1.3、編譯項目,生成dll
2、通過jna調用dll
2.1、在java項目中加入jna依賴
<dependency> <groupId>com.sun.jna</groupId> <artifactId>jna</artifactId> <version>3.0.9</version> </dependency>
2.2、編寫調用類
public class DllTest { public interface CLibrary extends Library { CLibrary INSTANCE = (CLibrary) Native.loadLibrary("cDll2", CLibrary.class); String hello(); } public static void main(String[] args) { String result = CLibrary.INSTANCE.hello(); System.out.println(result); } }
註意:dll可以使用絕對路徑
到此,樣例代碼編寫完成,一個簡單的dll,一個簡單的jna調用,歐了。
---------------------
作者:tobearc
來源:CSDN
原文:https://blog.csdn.net/tobearc/article/details/87215315
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!