1.在eclipse中新建一个JNITest的工程,新建一个package com.example.test。
<a href="http://s3.51cto.com/wyfs02/M02/12/77/wKiom1MIVZzghUE7AAAh7j9DSlY416.jpg" target="_blank"></a>
2.在com.example.test下新建一个类HelloWorld,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<code>package</code> <code>com.example.test;</code>
<code> </code>
<code>public</code> <code>class</code> <code>HelloWorld {</code>
<code> </code><code>public</code> <code>native</code> <code>void</code> <code>displayHelloWorld();</code>
<code> </code><code>static</code> <code>{</code>
<code> </code><code>System.loadLibrary(</code><code>"jniTest"</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>
<code> </code><code>System.err.println(</code><code>"TEST:"</code><code>);</code>
<code> </code><code>new</code> <code>HelloWorld().displayHelloWorld();</code>
<code>}</code>
3.运行cmd,定位到JNITest根目录下,mkdir新建jni文件夹,
运行命令 javah -classpath bin -d jni com.example.test.HelloWorld
<a href="http://s3.51cto.com/wyfs02/M01/12/77/wKioL1MIVxKyVP4kAABF6hibtNg050.jpg" target="_blank"></a>
会在jni文件夹下生成 com_example_test_HelloWorld.h
<a href="http://s3.51cto.com/wyfs02/M02/12/77/wKioL1MIV5mBjfdKAAHVoJ7IEVo887.jpg" target="_blank"></a>
4.打开vs2010新建一个名为jniTest的win32控制台项目:
<a href="http://s3.51cto.com/wyfs02/M00/12/78/wKioL1MIWC_AWQvCAAJXti8ZRvM531.jpg" target="_blank"></a>
点击确定->下一步,选中dll,附加选项中选择空项目:
<a href="http://s3.51cto.com/wyfs02/M00/12/77/wKiom1MIWOGgMO8zAAEOsQyojpY694.jpg" target="_blank"></a>
5.将我们刚javah出来的h文件复制到jniTest工程目录下的jniTest文件夹下,在jniTest工程中添加头文件,现有项,在弹出来的对话框选择com_example_test_HelloWorld.h文件;
<a href="http://s3.51cto.com/wyfs02/M02/12/78/wKioL1MIWa-jd276AAFGmHU0Rmc601.jpg" target="_blank"></a>
6.将java jdk安装目录中的include\jni.h include\win32\jni_md.h两个文件复制到与com_example_test_HelloWorld.h同一目录下:
<a href="http://s3.51cto.com/wyfs02/M01/12/77/wKiom1MIWlLjSKRqAAGYoBey4Es445.jpg" target="_blank"></a>
7.在vs2010工程jniTest新建一个C++源文件,命名为hello.cpp,代码如下:
<code>#include "com_example_test_HelloWorld.h"</code>
<code>#include <stdio.h></code>
<code> </code>
<code>JNIEXPORT </code><code>void</code> <code>JNICALL Java_com_example_test_HelloWorld_displayHelloWorld</code>
<code>(JNIEnv * env, jobject obj)</code>
<code>{</code>
<code> </code><code>printf</code><code>(</code><code>"Hello World,ponpon\n"</code><code>);</code>
将com_example_test_HelloWorld.h内的#include <jni.h>改为#include "jni.h",编译之,若成功在Debug下生成jniTest.dll。
8.回到Eclipse中,右击工程,选择”Import“导入:
<a href="http://s3.51cto.com/wyfs02/M00/12/78/wKioL1MIW-eR25S5AAF3JyZZXyo601.jpg" target="_blank"></a>
选择File System指定到vs2010工程jniTest的Debug下,选择jniTest.dll:
<a href="http://s3.51cto.com/wyfs02/M01/12/78/wKioL1MIXEHS4OvxAAHVeNPUaoY476.jpg" target="_blank"></a>
单击finish,并编译,控制台输出如下:
<a href="http://s3.51cto.com/wyfs02/M01/12/78/wKiom1MIXLPTzE0GAACcLOyJVG0636.jpg" target="_blank"></a>
本文转自 ponpon_ 51CTO博客,原文链接:http://blog.51cto.com/liuxp0827/1362081,如需转载请自行联系原作者