1.首先下载安装mingw-w64(个人而定,64位),安装目录C:\mingw-w64\x86_64-4.9.2-win32-seh-rt_v3-rev0;然后配置环境变量。在path中添加该路径
[img]http://dl2.iteye.com/upload/attachment/0115/4414/9a99dfbd-0b33-3041-92cb-d731852756ae.png[/img]
2.在eclipse中新建java工程,创建一个java类。
[code="java"][/code]
package com.hr.study;
public class HelloNative {
static{
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("libJNI");//放在java.library.path任意一个路径下面
// System.load("E:/workspace/android-workspace-ndk/StudyJNI/lib/libJNI.dll");//绝对路径调用方式
}
public static native void greeting();
public static void main(String[] args) {
HelloNative.greeting();
}
}
3.使用javah命令,生成com_hr_study_HelloNative.h头文件.cmd打开命令行窗口,切换到class目录路径,E:\workspace\android-workspace-ndk\StudyJNI\bin>javah com.hr.study.HelloNative.
[img]http://dl2.iteye.com/upload/attachment/0115/4418/1334b1c7-ab80-3ec3-916e-6dd48865cd5e.png[/img]
4.在CDTeclipse中创建c++工程,将生成的头文件拷贝到src目录下.为工程引入jni.h/jin_md.h,右键属性->c/c++General->Paths and Symbols,下属选项卡Includes->GNU C++,Add添加JDK目录inludes及win32目录。
[img]http://dl2.iteye.com/upload/attachment/0115/4420/75c6905e-12f0-3927-bad4-28463466c416.png[/img]
5.cdt编译设置,c/c++Build->Settings->Tool Settings->MinGW C++ Linker目录栏下的Miscellaneous选项下,在linker flags处填入:-Wl,–add-stdcall-alias,在Shared Library Settings中勾选Shared,Build Arifact选项页中,设置Artifact Type为Shared Library。
如图:
[img]http://dl2.iteye.com/upload/attachment/0115/4428/99f8c1c0-7a10-3910-b8fd-c6b07e7b0568.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0115/4430/26dd7ce7-9fe8-3ce1-9f34-75d3e134ca20.png[/img]
6编译生成dll文件,将dll文件拷贝到java.library.path(java环境变量)下即可调用,也可以拷贝到java工程,通过绝对路径方式调用
[img]http://dl2.iteye.com/upload/attachment/0115/4432/ed9c21f0-530d-3a9b-abaa-29b6f21f402e.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0115/4414/9a99dfbd-0b33-3041-92cb-d731852756ae.png[/img]
2.在eclipse中新建java工程,创建一个java类。
[code="java"][/code]
package com.hr.study;
public class HelloNative {
static{
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("libJNI");//放在java.library.path任意一个路径下面
// System.load("E:/workspace/android-workspace-ndk/StudyJNI/lib/libJNI.dll");//绝对路径调用方式
}
public static native void greeting();
public static void main(String[] args) {
HelloNative.greeting();
}
}
3.使用javah命令,生成com_hr_study_HelloNative.h头文件.cmd打开命令行窗口,切换到class目录路径,E:\workspace\android-workspace-ndk\StudyJNI\bin>javah com.hr.study.HelloNative.
[img]http://dl2.iteye.com/upload/attachment/0115/4418/1334b1c7-ab80-3ec3-916e-6dd48865cd5e.png[/img]
4.在CDTeclipse中创建c++工程,将生成的头文件拷贝到src目录下.为工程引入jni.h/jin_md.h,右键属性->c/c++General->Paths and Symbols,下属选项卡Includes->GNU C++,Add添加JDK目录inludes及win32目录。
[img]http://dl2.iteye.com/upload/attachment/0115/4420/75c6905e-12f0-3927-bad4-28463466c416.png[/img]
5.cdt编译设置,c/c++Build->Settings->Tool Settings->MinGW C++ Linker目录栏下的Miscellaneous选项下,在linker flags处填入:-Wl,–add-stdcall-alias,在Shared Library Settings中勾选Shared,Build Arifact选项页中,设置Artifact Type为Shared Library。
如图:
[img]http://dl2.iteye.com/upload/attachment/0115/4428/99f8c1c0-7a10-3910-b8fd-c6b07e7b0568.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0115/4430/26dd7ce7-9fe8-3ce1-9f34-75d3e134ca20.png[/img]
6编译生成dll文件,将dll文件拷贝到java.library.path(java环境变量)下即可调用,也可以拷贝到java工程,通过绝对路径方式调用
[img]http://dl2.iteye.com/upload/attachment/0115/4432/ed9c21f0-530d-3a9b-abaa-29b6f21f402e.png[/img]