JNI 的实现过程

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.hD:\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代码。


看控制台,输出了吧。


猜你喜欢

转载自blog.csdn.net/qq_25775675/article/details/77602838
JNI