Java学习篇之---JNI简单实现(续)

来源:互联网 发布:迅雷5.8绿色优化版 编辑:程序博客网 时间:2024/06/05 01:22

上篇文章中,在生成头文件的时候出了个岔子,好在功夫不负有心人,最终困难被克服了!

下面我接着来写步骤二的第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()方法:


1 0
原创粉丝点击