(轉)Java 調用 C++ (Java 調用 dll)


轉自: http://www.cnblogs.com/baokang/p/4979243.html 

因為要做點圖形處理的項目,需要在Java中調用dll庫,所以開發的第一步是研究了一下Java Jni的使用方法。突然發現Android Jni 使用跟這個好像(麻蛋,不就是一樣的嗎,但是Android中需要使用so動態鏈接庫)。

第一步 創建Java工程,命名JniDemo,添加JniDemo.java

 

第二步 在Java類中添加native方法

復制代碼
/**
 * @author Baokang
 */
public class JniDemo{
    public native static void set(int i);
    public native static int get();
}
復制代碼

第三步 使用javah命令生成頭文件

在cmd中執行javah javah com.bk.jnidemo.JniDemo,生成 com_bk_jnidemo_JniDemo.h 頭文件

 

第四步 創建DLL項目,使用Vs2010

創建Win32項目,項目名字JniDemo

 

 

 

第五步 拷貝com_bk_jnidemo_JniDemo.h,jni.h,jni_md.h至vs工程cpp文件目錄下

其中jni.h在jdk的include目錄下,jni_md.h在jdk的include\win32目錄下

 

 

在項目中添加頭文件目錄下com_bk_jnidemo_JniDemo.h,#include <jni.h> 改為 #include "jni.h"

第六步 在Jni.cpp中實現C++方法

第七步 生成64位dll庫

 先修改配置管理器

然后生成64dll庫

 

 

第八步 把64位dll庫拷貝至Java JniDemo項目根目錄下,修改JniDemo.java

注意64位dll在X64目錄下,然后修改JniDemo.java如下

復制代碼
 1 package com.bk.jnidemo;
 2 
 3 public class JniDemo {
 4     static{
 5         System.loadLibrary("JniDemo");
 6     }    
 7     public native static void set(int i);
 8     public native static int get();
 9     
10     public static void main(String[] args) {
11         set(100);
12         System.out.println(get());
13         
14     }
15 }
復制代碼

第九步 運行,搞定


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM