Java所有native方法,java里的native方法的使用正解

在网上看到各种帖子谈论java的native方法,这是java用来弥补其运行速度慢而利用C的措施,可以说是java与C/C++的接口,但是网上这类帖子太多而且讲述的方法都很复杂,今天我想总结一下。

步骤:

1.写一个java类,例如下面的HelloWorld.java

public class HelloWorld {

private native void print();

static

{

System.loadLibrary("Hello");

}

public static void main(String[] args) {

new HelloWorld().print();

}

}

注意(1)上面的native关键字,在这是说明print方法不是用java实现的,static{}类似于初始化工作。

(2)System.loadLibrary("Hello");是程序要导入Hello.dll这个文件,这个文件是用C/C++写的,而且必须包含print()方法的实现。

(3)最好别用Eclipse写,因为我一开始这样做后死活都不能通过javah。

2.写完java文件后,打开命令行窗口,在java文件目录下输入javac HelloWorld.java进行编译生成HelloWorld.class文件,这一步就不多说了。

3.在class文件目录下再次用dos命令javah -jni HelloWorld生成HelloWorld.h文件

4.到重点了,打开vc6.0或者VS新建一个C++DLL工程,例如Hello,再在工程里新建一个Hello.c文件,写下以下代码:

#include#include

#include"HelloWorld.h"

JNIEXPORT void JNICALL

Java_HelloWorld_print

(JNIEnv *env, jobject obj)

{

printf("Hello World!\n");

return;

}

注意:

(1)include jni.h文件,这个头文件在你jdk目录下的include目录下,但光这个头文件还不够,因为jni.h里面还include其他头文件,包括

\jdk\include\win32\jawt_md.h

\jdk\include\win32\jni_md.h

找出这些头文件后当然要拷贝到你的VC++或VS的Include目录下,如vc6.0的是E:\Program Files\Microsoft Visual Studio\VC98\Include

这一步相当重要,否则是不能通过编译的

(2)把HelloWorld.h文件放到工程当前目录下

5.用vc或vs编译后便得到我们想要的Hello.dll

6.激动人心时刻到了,把Hello.dll文件放到java文件相同目录下运行,得到结果如下图所示

0818b9ca8b590ca3270a3433284dd417.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值