码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-30 22:01:33      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:java   jni   64位   c++   

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

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

技术分享

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

标签:java   jni   64位   c++   

原文地址:http://blog.csdn.net/a_little_e/article/details/45397557

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!