开发者社区> 问答> 正文

Java怎么调用C?

Java怎么调用C?

展开
收起
1358896759097293 2021-05-04 15:27:59 909 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    Java调用C是使用JNI最常见的方式,首先定一个类叫HelloJNI,里面有System.loadLibrary("hello"); 系统会自动去找到library libhello.so,这个类里面定义方法叫sayHello,加了C以后调用它,但这是调不通的,因为并没有提供真正的Native实现。实现要通过一个头文件去告诉这个方法的签名,这里实现Java文件,然后通过jni.h生成头文件,这个是自动生成的。 签名是 Java,然后是Java_HelloJNI_sayHello(JNIEnv *, jobject)规范,类名加上方法名,参数第一个是环境;第二个是jobject,无参数,但是 Java的方法默认是有一个this指针作为第一个参数,最后编写它,实现HelloJNI.c,根据这个声明定义实现,然后里面只是printf了一下,把 HelloJNI.c定义成libhelloHello.so这个程序就可以运行起来了。详情如下图所示:

    24.png

    在Java应用里面,可以调通过JNI调用各种库,调用到native以后,因为任何语言跟native都互相交互,大大丰富了Java使用场景。

    2021-05-05 22:55:41
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载