java初步jni学习

java文件:

public class test {
	
	
	public static void main(String args[]){
		test m=new test();
		System.out.println(m.hello(2, 3));
	}
	static{
		System.loadLibrary("hello");
	}
	public native int hello(int a,int b);
}

在工程的bin目录下新建run.bat:

@echo off
c:
cd C:\Documents and Settings\xy\workspace\jni\bin
javah -jni com.xy.jni.main
echo. & pause
运行run.bat文件得到.h文件:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_xy_jni_main */

#ifndef _Included_com_xy_jni_main
#define _Included_com_xy_jni_main
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_zte_jni_main
 * Method:    hello
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL _Java_com_xy_jni_test_hello
  (JNIEnv *, jobject, jint, jint);

#ifdef __cplusplus
}
#endif
#endif

然后新建一个文件夹,用于编写c代码:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include "com_zte_jni_test.h"
/* Header for class com_xy_jni_main */



JNIEXPORT jint JNICALL _Java_com_xy_jni_test_hello
  (JNIEnv *env, jobject obj, jint a, jint b){

	return a+b;
}

在目录下新建一个hello.def文件:

EXPORTS
Java_com.xy.jni.test

在目录下新建一个Crun.bat:

@echo off
c:
cd C:\Documents and Settings\xy\桌面\jni
gcc -c -I"d:\java\include" -I"d:java\include\win32" -o jni.o com_xy_jni_main.c
gcc -shared -o hello.dll jni.o hello.def
echo. & pause
默认编写.h文件Java_com_zte_jni_test_hello前面没有_下滑线的,运行使会报如下错误:java.lang.UnsatisfiedLinkError(加个下划线就可以哦.....)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值