public class Dog { public native void eat(); public static void main(String[] args) { System.loadLibrary("NativeDog"); Dog dog = new Dog(); dog.eat(); } }
这里是java的代码,我们将Dog.java 文件复制到 E:/JNI2 文件夹下。
然后开始执行编译的命令
E:\JNI2>javac ./Dog.java
执行过后生成了 Dog.class 文件
E:\JNI2>javah -jni Dog
执行过后生成了 Dog.h 文件
然后打开vs2010 新建项目 选择 win32 项目 命名为NativeDog
选择完成。
然后写代码
#include "stdafx.h" #include "Dog.h" #include <iostream> using namespace std; JNIEXPORT void JNICALL Java_Dog_eat(JNIEnv * env, jobject obj) { cout<<"eat beef!"<<endl; //printf("Hello NDK!"); }
将写好的代码的NativeDog.cpp 文件 复制到 E:/JNI2
然后将D:\Program Files\Java\jdk1.6.0_26\include\jni.h和D:\Program Files\Java\jdk1.6.0_26\include\win32\jni_md.h这两个文件拷贝到E:/JNI2下
(具体的目录要 看你自己jdk 安装在哪)
然后在将 c++项目下的 stdafx.h 和 targetver.h 两个文件 复制到 E:/JNI2 文件夹下
好了我们的文件夹下有这些文件。
然后 我们去打开 VS2010 的工具命令
因为我的是64位 所以我选择了Visual Studio x64 兼容工具命令(选错会报错的)
执行命令 cl/LD E:\JNI2\NativeDog.cpp
然后就可以生成四个文件
E:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
(这就是你执行的那个文件夹,看图片的路径 你懂得)
看到我标注的第一个文件了吗?就是NativeDog.dll 没错就是它,将它复制到D:\Program Files (x86)\java\jdk1.8.0_101\bin
(也就是jdk的bin目录下,你要看看你自己的jdk在哪里了)
到这里就基本大功告成了。
然后我们去eclipse 里执行下我们的java代码。
看控制台,输出了吧。