上篇文章中,在生成头文件的时候出了个岔子,好在功夫不负有心人,最终困难被克服了!
下面我接着来写步骤二的第9)步:
步骤二:
9)设置64位编译平台:
打开Microsoft Visual Stutio 2008--->File--->New--->Project...--->
OK--->Next--->
Finish后会生成一个空项目:
默认是采用Win32平台,而我的操作系统是64位的,所以:
点击Configuration Manager...
默认如下图所示:
new 一个新的platform:
到此为止,64位编译平台已经设置好。
10)用c++实现sayHello()方法并将源文件编译成sayhello.dll动态链接库:
将上篇文章中费了九牛二虎之力生成的头文件,拷贝到sayhello项目下:
选中sayhello项目下的Header Files--->右键Add--->Existing Item...--->选中上图中的com_ryze_jni_test_HelloWorld.h--->这样头文件就加入到了工程中:
点击可以看到头文件中声明了一个名字很长叫做Java_com_ryze_jni_test_HelloWorld_sayHello的函数,这个函数的命名规则是Java_包名_类名_方法名
接下来就是选中项目下的Source Files--->右键Add--->New Item...--->
新建一个名字为source的c++空文件
在空文件中写下代码如下:
#include<iostream> #include"com_ryze_jni_test_HelloWorld.h" using namespace std; JNIEXPORT void JNICALL Java_com_ryze_jni_test_HelloWorld_sayHello(JNIEnv *, jobject){ cout<<"Hello World !"<<endl; }
改写成:
然后将JDK的include目录
C:\Program Files\Java\jdk1.7.0_45\include
下的jni.h和目录
C:\Program Files\Java\jdk1.7.0_45\include\win32下的jni_md.h拷贝到项目源文件目录下
然后编译:
编译成功,此时在debug目录下生成我们需要的sayhello.dll文件:
11)将生成的sayhello.dll动态链接库加入到PATH环境变量下:
12)在java中调用动态链接库中的sayHello()方法:
原文地址:http://blog.csdn.net/a_little_e/article/details/45397557