windows平台下jni调用说明

1.首先下载安装mingw-w64(个人而定,64位),安装目录C:\mingw-w64\x86_64-4.9.2-win32-seh-rt_v3-rev0;然后配置环境变量。在path中添加该路径



2.在eclipse中新建java工程,创建一个java类。

 

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.




4.在CDTeclipse中创建c++工程,将生成的头文件拷贝到src目录下.为工程引入jni.h/jin_md.h,右键属性->c/c++General->Paths and Symbols,下属选项卡Includes->GNU C++,Add添加JDK目录inludes及win32目录。


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。
如图:



6编译生成dll文件,将dll文件拷贝到java.library.path(java环境变量)下即可调用,也可以拷贝到java工程,通过绝对路径方式调用



猜你喜欢

转载自eagalwood.iteye.com/blog/2279987