eclipse JNI示例。利用C/C++实现JAVA中调用的函数

第一步。新建一个JAVA工程JniTest。再在包jni下新建一个HelloWorld类

 

package jni;

public class HelloWorld {
	    static{
	        System.loadLibrary("HelloWorld");
	    }
	 
	    public native void dispHelloWorld();
	    /**
	     * @param args
	     */
	    public static void main(String[] args) {
	        // TODO Auto-generated method stub
	        //System.getProperty("java.library.path");
	       new HelloWorld().dispHelloWorld();
	    }

}


第二步。利用javah命令产生相应的头文件

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

#ifndef _Included_jni_HelloWorld
#define _Included_jni_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     jni_HelloWorld
 * Method:    sayHi
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_jni_HelloWorld_sayHi
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif


 

第三步。在对应的目录下新建jni_HelloWorldImp.cpp文件实现头文件jni_HelloWorld.h的函数。

#include <jni.h>

#include "jni_HelloWorld.h"

#include <stdio.h>

JNIEXPORT void JNICALL Java_jni_HelloWorld_sayHi
  (JNIEnv *env, jobject obj)	
{
   printf("Hi,World!");

   return;
}

第四步。利用cl命令(本无cl命令。cl是vs编译器。可以配置环境变量。使得命令能运行。)

在控制台下>cl -LD jni_HelloWorldImp.cpp -FeHelloWorld.dll,
以上命令的参数中,-LD表示产生dll-Fe后面表示产生dll的名字,具体的参数可以自己用cl -help命令查看,
如果成功编译,会产生HelloWorld.dll, HelloWorld.lib, HelloWorld.exp

以及jni_HelloWorldImp.obj四个文件。

这儿有一个小技巧。选择VS下面的控制台工具,比较不容易出错。因为可能有些系统库路径不支持。在VS下面的控制台可以避免这一尴尬。当然你也可以用.bat文件指明路径,但如果路径较多,就比较麻烦。

OK,成功生成了。

最后一步。设置下本地JNI的路径

然后,运行测试。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值