搭建Window环境下Jni开发步骤(1)

一,JNI简介

Java 本机接口(Java Native Interface (JNI))是一个本机编程接口,它是 Java 软件开发工具箱(Java SoftwareDevelopment Kit (SDK))的一部分,JNI它提供了若干的API,实现了和Java和其他语言的通信(主要是C&C++)。

    JNI允许Java代码使用以其它语言(譬如 C 和 C++)编写的代码和代码库。

    Invocation API(JNI的一部分)可以用来将Java虚拟机(JVM)嵌入到本机应用程序中,从而允许程序员从本机代码内部调用Java 代码。

    也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢?

    我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要JNI的,但是假如你遇到了如下的三种情况之一呢? 

   1. 你的Java代码,需要得到一个文件的属性。但是你找遍了JDK帮助文档也找不到相关的API。 

   2. 在本地还有一个别的系统,不过他不是Java语言实现的,这个时候你的老板要求你把两套系统整合到一起。 

   3. 你的Java代码中需要用到某种算法,不过算法是用C实现并封装在动态链接库文件(DLL)当中的。 

对于上述的三种情况,如果没有JNI的话,那就会变得异常棘手了。就算找到解决方案了,也是费时费力。其实说到底还是会增加开发和维护的成本。 



二,环境需求

JNI 最常见的两个应用:从Java程序调用C/C++,以及从C/C++程序调用Java代码

1、需要下列工具与组件:
    javac.exe:  Java 编译器:随 SDK(Java 2 SDK及以上) 一起提供的 。

    java.exe:   Java 虚拟机(JVM):随 SDK 一起提供的 。

    javah.exe:  本机方法 C 文件生成器:随 SDK 一起提供的 。

2、定义JNI的库文件和本机头文件:
    jni.h (C 头文件)、jvm.lib 和 jvm.dll (window下)或 libjvm.so 文件(linux下),这些文件都是随 SDK 一起提供的。

3、能够创建共享库的 C 和 C++ 编译器。

最常见的两个 C 编译器是用于Windows的Visual C++和用于基于UNIX系统的 gcc/cc。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值