Eclipse中java、C++ 和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后,Eclipse中Window—preferences会有C/C++选项,如图:
3. 安装MinGW。
(1) 下载地址:http://sourceforge.net/projects/mingw/files/
下载后如图:(里面的这三个工具我们都要用到)
(2) 安装,双击mingw-get-inst-20110316.exe文件,选择自己喜好位置(比如:D:/MinGW),这个过程联网,会花费一定的时间。
4. 下载gdb-6.6.tar.bz2
(1) 下载地址:http://downloads.sourceforge.net/mingw/gdb-6.6.tar.bz2
(2) 解压后,里面有这几个目录
全选复制到MinGW目录下,选择全部覆盖。
(3) 安装MSYS(MSYS是make及命令行的一个实现)。
下载地址: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;
public class Hello {
static {
// hello是之后编译出来的dll文件名hello.dll
// 但是一定不要加.dll扩展名
System.loadLibrary("hello");
}
public native void print();
public static void main(String[] args) {
new Hello().print();
}
}
(2)不出意外的话,在jniJava工程目录的bin目录下会自动编译成class文件
(3)打开命令行,进入jniJava的bin目录下,运行javah com.jni.Hello,在bin目录下会生成一个.h文件,如图:
三、 创建C++工程,命名为jniCpp
(1)
将com.jni.Hello.h拷贝到jniCpp工程的src目录下
(2)创建com.jni.Hello.cpp文件,编写代码:
#include
#include "com_jni_Hello.h"
#include
using namespace std;
JNIEXPORT void JNICALL Java_com_jni_Hello_print
(JNIEnv *env, jobject obj)
{
cout<<"Hello Jni World!"<
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!
六、完。