iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >JNI实现最简单的JAVA调用C/C++代码
  • 580
分享到

JNI实现最简单的JAVA调用C/C++代码

javajniava 2023-05-31 08:05:44 580人浏览 安东尼
摘要

JNI,是Java Native Interface的简称,中文是“Java本地调用”。通过这种技术可以做到以下两点: Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数。 Native程序

JNI,是Java Native Interface的简称,中文是“Java本地调用”。通过这种技术可以做到以下两点:

  1. Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数。
  2. Native程序中的函数可以调用Java层的函数,也就是说在C/c++程序中可以调用Java的函数。

本篇博客带给童鞋们以下内容,学习内容来自(传智播客),经由小巫总结整理:

  • javah工具的用法
  • 按照C/C++头文件来编写C/C++源文件
  • 将C/C++源文件编译成动态连接库(DLL)
  • 在Java程序中引入动态连接库等知识

JNI并不是什么特别神奇的东西,当初SUN推出它的目的是为了屏蔽不同操作系统平台的差异性,通过Java语言来调用Native语言的功能模块,避免重复制作车轮,最主要是这两个目的。

最简单的Java调用C/C++代码,有以下步骤,童鞋们最好详细阅读,避免出现相应的错误:

  • 首先在Java类中声明一个native的方法
  • 使用Javah命令生成native方法的声明的C/C++头文件
  • 按照生成的C/C++头文件来编写C/C++源文件
  • 将C/C++源文件编译成动态链接库(DLL)
  • 将DLL文件加入到PATH环境变量下
  • Java类中加载DLL,然后调用声明方法

我们现在一步一步把整个流程熟悉一遍,在Eclipse中创建一个Java项目

JNI实现最简单的JAVA调用C/C++代码  

笔者创建了一个命为:TestNativeCode的项目,新建包名为com.wwj.nativecode,新建类为TestNativeCode

接着在TestNativeCode类当中声明我们的本地方法:

package com.wwj.nativecode;  public class TestNativeCode {   // 声明本地方法   public native void sayHello();   public static void main(String[] args) { //   // 加载动态链接库 //   System.loadLibrary("nativeCode"); //   TestNativeCode nativeCode = new TestNativeCode(); //   nativeCode.sayHello();    } } 

--结束END--

本文标题: JNI实现最简单的JAVA调用C/C++代码

本文链接: https://www.lsjlt.com/news/224464.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言怎么计算字符串长度
    在C语言中,可以使用内置的strlen()函数来计算字符串的长度。该函数位于string.h头文件中。以下是一个示例代码: #inc...
    99+
    2024-05-15
    c语言
  • c语言怎么判断三个数的大小
    可以通过比较三个数之间的大小关系来判断它们的大小。以下是一个示例代码: #include <stdio.h> int ...
    99+
    2024-05-15
    c语言
  • c++排序函数sort怎么使用
    在C++中,使用sort函数对容器中的元素进行排序,可以按照默认的升序排列,也可以自定义排序规则。 下面是一个简单的例子,对一个ve...
    99+
    2024-05-15
    c++
  • c++中string的compare函数怎么使用
    在C++中,可以使用string的compare函数来比较两个string对象的大小。该函数的原型如下: int compare(c...
    99+
    2024-05-15
    c++
  • c++中string的compare函数有什么用
    c++中string的compare函数用于比较两个字符串的大小关系。该函数返回一个整数值,表示两个字符串的比较结果。 具体来说,如...
    99+
    2024-05-15
    c++
  • c++中print函数的功能有哪些
    在C++中,通常使用std::cout来进行输出操作,而不是使用print函数。std::cout是C++标准库中的一个输出流对象,...
    99+
    2024-05-15
    c++
  • c语言数据结构怎么使用
    在C语言中,数据结构可以通过定义结构体来实现。以下是一些常见的数据结构的使用方法示例: 链表: #include <std...
    99+
    2024-05-15
    c语言
  • c++中print函数的用法是什么
    在C++中没有内置的print函数,但可以使用cout来输出内容到控制台。cout是C++标准库中的一个输出流对象,可以使用<...
    99+
    2024-05-15
    c++
  • c++中concept的用法是什么
    在C++20中,Concept是一种新的语言特性,用于定义类型要求和约束。Concept可以被用来约束函数模板、类模板和普通函数的参...
    99+
    2024-05-15
    c++
  • c++中concept的作用是什么
    在C++中,concept的作用是定义一种通用的约束,用于限制模板参数的类型范围。通过使用concept,可以在编译时对模板参数进行...
    99+
    2024-05-15
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作