1. 程式人生 > >Eclipse中java、C++ 和JNI環境搭建

Eclipse中java、C++ 和JNI環境搭建

EclipsejavaC++ JNI環境搭建

一、工具準備

1.Eclipse IDE

(1)下載地址:http://www.eclipse.org/downloads/。我喜歡使用JavaEE版本的,如下圖:使用的Eclipse Helios(3.6.2) Packages for Windows

(2)下載之後解壓到自己想要解壓的地盤,開啟後設置JDK開發環境。(這個就不具體說了)

2.CDT(C/C++ Development Tooling)

(1)下載地址:http://www.eclipse.org/cdt/downloads.php。根據頁面提示可以下載外掛包或者Eclipse線上安裝

(個人愛好線上安裝,省事兒啊),如下圖所示:

(2)安裝好CDT後,EclipseWindowpreferences會有C/C++選項,如圖:

3.安裝MinGW

下載後如圖:(裡面的這三個工具我們都要用到)

(2)安裝,雙擊mingw-get-inst-20110316.exe檔案,選擇自己喜好位置(比如:D:/MinGW),這個過程聯網,會花費一定的時間。

4.下載gdb-6.6.tar.bz2

(2)解壓後,裡面有這幾個目錄

全選複製到MinGW目錄下,選擇全部覆蓋。

(3)安裝MSYS(MSYSmake及命令列的一個實現)

下載地址:http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe

雙擊安裝,安裝介面是命令列介面,需要輸入兩次y,並且要輸入MinGW安裝路徑,如:D:/MinGw,如圖所示:

(4)在配置下一系統環境變數Path,將D:/MinGW/bin;加入Path

(5)進入D:/MinGW/bin目錄,找到mingw32-make.exe檔案,複製一個副本,改名為 make.exe,如圖所示:

因為CDT預設的是make命令,當然也可以更改CDT的預設設定。

(6)OK。到這裡環境已經搭建好了。下面我們做個Hello World的例子吧。

二、建立java工程,命名為jniJava

(1)如圖所示:

編寫Hello.java程式碼:

package com.jni;

publicclass Hello {

static {

// hello是之後編譯出來的dll檔名hello.dll

// 但是一定不要加.dll副檔名

System.loadLibrary("hello");

}

publicnativevoid print();

publicstaticvoid main(String[] args) {

new Hello().print();

}

}

(2)不出意外的話,在jniJava工程目錄的bin目錄下會自動編譯成class檔案

(3)開啟命令列,進入jniJavabin目錄下,執行javah com.jni.Hello,在bin目錄下會生成一個.h檔案,如圖:

三、建立C++工程,命名為jniCpp

(1)

com.jni.Hello.h拷貝到jniCpp工程的src目錄下

(2)建立com.jni.Hello.cpp檔案,編寫程式碼:

#include<jni.h>

#include"com_jni_Hello.h"

#include<iostream>

usingnamespace std;

JNIEXPORT void JNICALL Java_com_jni_Hello_print

(JNIEnv *env, jobject obj)

{

cout<<"Hello Jni World!"<<endl;

return;

}

(3)建立Hello.def檔案,裡面寫:

EXPORTS

Java_com_jni_Hello_print

(4)

四、編譯dll檔案

(1)開啟命令列視窗,進入jniCpp工程的src目錄,執行g++ -c -I"D:/Program Files/Java/jdk1.6.0_17/include" -I"D:/Program Files/Java/jdk1.6.0_17/include/win32" -o hello.o com_jni_Hello.cpp命令(具體引數根據自己的環境設定),會生成hello.o檔案,再執行g++ -shared -o hello.dll hello.o hello.def命令,會生成hello.dll檔案。

五、開始java進行jni呼叫了

1.hello.dll拷貝到jniJava工程的根目錄下,如圖:

2.執行之前寫好的Hello.java檔案吧,成功輸出:

Hello Jni World!

六、完。