java 调用c语言_Java 调用C语言JNI库(Hello World实例)

要在java中调用c语言的库,一直觉得很不可思议,但是Java提供了JNI这个东西,这也就变得可能了. 作为一个码农,我们还是从最简单的 Hello World开始吧.

首先说一下我们想要做的事情. 在c语言中定义一个 void sayHello()函数(打印Hello World);然后在Java中调用这个函数显示Hello Word.

现在分别从Java和C语言两部分说明:

1. Java  部分

我们首先定义一个HelloNative,在其中申明sayHello函数,函数要申明为Native 类型的.如下:

public classHelloNative {public native voidsayHello();

}

编译这个类,生成class文件:

javac HelloWorld.java

利用javah生成需要的h文件

javah HelloNative

生成的 h文件大概如下:

/*DO NOT EDIT THIS FILE - it is machine generated*/#include

/*Header for class HelloNative*/#ifndef _Included_HelloNative#define _Included_HelloNative#ifdef __cplusplusextern "C"{#endif

/** Class: HelloNative

* Method: sayHello

* Signature: ()V*/JNIEXPORTvoidJNICALL Java_HelloNative_sayHello

(JNIEnv*, jobject);

#ifdef __cplusplus

}#endif

#endif

我们可以看一下上面自动生成的程序,程

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值