jni tutorial:windows下的HelloJNI

你需要保证你满足下面条件:

1. 使用 Eclipse 在 windows(32位操作系统)下学习。

2. 安装了MinGW,并且配置好,保证 gcc 可以使用。


一、新建项目


HelloJNI.java

package it.man.jni;

public class HelloJNI {
	static {
		System.loadLibrary("HelloJNI");
	}
	
	public native int getValue();
}

Main.java

package it.man;

import it.man.jni.HelloJNI;

public class Main {

	public static void main(String[] args) {
		HelloJNI jni = new HelloJNI();
		jni.getValue();
	}

}

二、编写 c 代码

这里分如下几个步骤

1、javah 产生头文件

这里要确保你的 eclipse 是保存后理解编译java代码的。不然手动编译你的 java 代码,主要目的是产生 class 文件

cd 到项目根目录(如这里是 E:\workspace\kepler\SUNJNIPrograms如这里是),即可执行

javah -classpath bin -d jni -jni it.man.jni.HelloJNI

随后在jni目录产生文件,目录结构如下


2、编写c

在 jni 目录新建一个 c 文件,这里命名为 HelloJNI.c

复制 it_man_jni_HelloJNI.h 里面的代码到 HelloJNI.c

#include <jni.h>
#include <stdio.h>

jint JNICALL Java_it_man_jni_HelloJNI_getValue(JNIEnv *env, jobject obj) {
	int a = 7;
	int b = 9;

	printf("gatValue return: %d\n", a+b);

	return a+b;
}

三、编译 c 文件,产生 dll 文件

cd 到 jni 目录(E:\workspace\kepler\SUNJNIPrograms\jni),执行

gcc -Wl,--add-stdcall-alias -I"D:\Program Files\Java\jdk1.6.0_45\include" -I"D:\Program Files\Java\jdk1.6.0_45\include\win32" -shared -o HelloJNI.dll HelloJNI.c

其中,D:\Program Files\Java\jdk1.6.0_45是jdk的安装路径。


这时目录结构如下



四、运行程序

在 eclipse 里面选择 run/run configurations/run java app,为 jvm 添加参数



注意:java.library.path 参数一定要设置,后面是 dll 的父目录。

正常的话,你会看到






©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页