linux下 java JNI调用C语言动态链接库

本文详细介绍了在Linux环境下,如何使用Java JNI调用C语言动态链接库的过程。从创建Java类定义原生方法,到使用javah生成头文件,再到编写并编译C代码,最后解决运行时的库路径问题。文中还强调了使用JNI可能导致的平台依赖性和潜在的替代方案。
摘要由CSDN通过智能技术生成

     JNI Java native interface 的简写,可以译作 Java 原生接口。 Java 可以通过 JNI 调用 C/C++ 的库,这对于那些对性能要求比较高的 Java 程序无疑是一个 福音。

     使用JNI也是有代价。大家都知道JAVA程序是运行在JVM之上的,可以做到平台无关。但是如果Java程序通过JNI调用了原生的代码(比如 c/c++等),则Java程序就丧失了平台无关性。最起码需要重新编译原生代码部分。所以应用JNI需要好好权衡,不到万不得已,请不要选择JNI,可 以选择替代方案,比如TCP/IP进行进程间通讯等等。这也是为什么谷歌的Android平台的底层虽然用JNI实现,但是他不建议开发人员用JNI来开 Android上面的应用的原因。将会丧失Android上面的应用程序平台无关性。

下面是在linuxjava jni调用C语言动态链接库的具体操作步骤。

1、创建一个Java程序(Hello.java)定义原生的c/c++函数。

2、用javac编译Hello.java生成Hello.class

3、用javah-jni参数编译Hello.class生成Hello.h文件,该文件中 定义了c的函数原型。在实现c函数的时候需要。

4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值