返回顶部
首页 > 资讯 > 精选 >JAVA开发中JNI标准原理是什么
  • 209
分享到

JAVA开发中JNI标准原理是什么

2023-06-17 12:06:56 209人浏览 泡泡鱼
摘要

这篇文章主要介绍“JAVA开发中JNI标准原理是什么”,在日常操作中,相信很多人在JAVA开发中JNI标准原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JAVA开发中JNI标准原理是什么”的疑惑有所

这篇文章主要介绍“JAVA开发中JNI标准原理是什么”,在日常操作中,相信很多人在JAVA开发中JNI标准原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JAVA开发中JNI标准原理是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

JNIJava Native Interface的缩写,中文为JAVA本地调用。

JNIJAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C、c++)的动态库进行交互,给其它语言发挥优势的机会。

实例:

环境说明:ubuntu 10.4.2 LTS系统

程序清单1:src/com/maGC/jni/HelloWorld.java

   package com.magc.jni;    public class HelloWorld {  static {  System.loadLibrary("Hello");  }  public native void DisplayHello();   public static void main(String[] args) {  new HelloWorld().DisplayHello();  }  }

进入src目录下,编译该JAVA类,

命令:javac ./com/magc/jni/HelloWorld.java

在该HelloWorld.java所在目录下生成HelloWorld.class

然后使用javah生成头文件,

命令:javah -jni com.magc.jni.HelloWorld

在当前目录下生成com_magc_jni_HelloWorld.h头文件,此文件供C、C++程序来引用并实现其中的函数

程序清单2:com_magc_jni_HelloWorld.h

 #include <jni.h>      #ifndef _Included_com_magc_jni_HelloWorld   #define _Included_com_magc_jni_HelloWorld   #ifdef __cplusplus   extern "C" {   #endif   JNIEXPORT void JNICALL Java_com_magc_jni_HelloWorld_DisplayHello  (JNIEnv *, jobject);  #ifdef __cplusplus  }  #endif  #endif

注:1)、此头文件是不需要用户编译的,直接供其它C、C++程序引用。

2)、此头文件中的Java_com_magc_jni_HelloWorld_DisplayHello(JNIEnv *, jobject)方法,是将来与动态链接库交互的接口,并需要名字保持一致。

程序清单3:src/jni_helloworldImpl.cpp

#include<jni.h>  #include "com_magc_jni_HelloWorld.h" #include <stdio.h>  JNIEXPORT void JNICALL Java_com_magc_jni_HelloWorld_DisplayHello  (JNIEnv *env, jobject obj)  {   printf("From jni_helloworldImpl.cpp :");   printf("Hello world ! \n");   return;  }

此C++文件实现了上述头文件中的函数,注意方法函数名要保持一致。

编译生成动态库libHello.so,

命令:g++ -shared -I /usr/lib/JVM/java-6-openjdk/include jni_helloworldImpl.cpp -o libHello.so

成功后,便会在当前目录下生成动态链接库libHello.so文件。

有了具体实现的动态库后,就可以运行JAVA调用JNI程序类的native方法了,

命令:java -Djava.library.path=. com.magc.jni.HelloWorld

输入结果即为:From jni_helloworldImpl.cpp :Hello world !

到此,关于“JAVA开发中JNI标准原理是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: JAVA开发中JNI标准原理是什么

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

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

猜你喜欢
  • JAVA开发中JNI标准原理是什么
    这篇文章主要介绍“JAVA开发中JNI标准原理是什么”,在日常操作中,相信很多人在JAVA开发中JNI标准原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JAVA开发中JNI标准原理是什么”的疑惑有所...
    99+
    2023-06-17
  • Java中怎么理解JNI原理
    这篇文章主要讲解了“Java中怎么理解JNI原理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中怎么理解JNI原理”吧!实例:环境说明:ubuntu 10.4.2 LTS系统程序清单...
    99+
    2023-06-17
  • java中jni指的是什么
    这篇文章将为大家详细讲解有关java中jni指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、说明jni的主要功能,从jdk1.1开始jni标准就成为了java平台的一部分,它提供的一系列的AP...
    99+
    2023-06-15
  • CSS标准文档流的基本原理是什么
    本文小编为大家详细介绍“CSS标准文档流的基本原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS标准文档流的基本原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • Java程序的开发与运行原理是什么
    这篇文章主要介绍“Java程序的开发与运行原理是什么”,在日常操作中,相信很多人在Java程序的开发与运行原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java程序的开发与运行原理是什么”的疑惑有所...
    99+
    2023-06-16
  • Java中什么是开闭原则
    这篇文章将为大家详细讲解有关Java中什么是开闭原则,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.什么是开闭原则?开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则...
    99+
    2023-06-29
  • APICloud多端开发的原理是什么
    这篇文章主要介绍了APICloud多端开发的原理是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇APICloud多端开发的原理是什么文章都会有所收获,下面我们一起来看看吧。在兼容和继承 APICloud 所...
    99+
    2023-06-27
  • Java中的netty原理是什么
    一、 Netty简介Netty是一个高性能、异步事件驱动的NIO框架,基于JAVA NIO提供的API实现。它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Lis...
    99+
    2020-04-09
    java教程 java netty 原理
  • java中RMI的原理是什么
    这篇文章主要介绍了java中RMI的原理是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明Client 端有一个被称 Stub 的东西,有时也会被成为存根,它是 R...
    99+
    2023-06-15
  • java中反射原理是什么
    这篇文章主要介绍了java中反射原理是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序...
    99+
    2023-06-14
  • java中orm的原理是什么
    小编给大家分享一下java中orm的原理是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业...
    99+
    2023-06-14
  • java中Hibernate的原理是什么
    这篇文章将为大家详细讲解有关java中Hibernate的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况...
    99+
    2023-06-14
  • Java中Lock的原理是什么
    Java中Lock的原理是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面...
    99+
    2023-06-14
  • java中Lombok的原理是什么
    本篇文章为大家展示了java中Lombok的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌...
    99+
    2023-06-14
  • java中IO的原理是什么
    本篇文章为大家展示了java中IO的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、IO概念I/O 即输入Input/ 输出Output的缩写,其实就是计算机调度把各个存储中(包括内存和...
    99+
    2023-06-20
  • Java中TypeToken的原理是什么
    Java中TypeToken的原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。泛型擦除众所周知,Java的泛型只在编译时有效,到了运行时这个泛型类型就会被擦除掉,即...
    99+
    2023-06-15
  • java 中ThreadPoolExecutor的原理是什么
    这篇文章将为大家详细讲解有关java 中ThreadPoolExecutor的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java 中ThreadPoolExecutor原理分析...
    99+
    2023-05-31
    java threadpoolexecutor ava
  • rest api开发的工作原理是什么
    这篇文章主要介绍“rest api开发的工作原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“rest api开发的工作原理是什么”文章能帮助大家解决问题。RESTful API 的工作原理R...
    99+
    2023-06-26
  • android组件化开发的原理是什么
    Android组件化开发的原理是将一个大型的应用程序拆分成多个独立的组件,每个组件包含自己的功能模块和界面,然后通过定义清晰的接口和...
    99+
    2023-10-22
    android
  • 阿里云代理返佣标准是什么
    首先,阿里云的代理返佣标准是按照客户销售额的一定比例计算的。比如,阿里云在中国市场的代理返佣标准为5%,在海外市场的代理返佣标准为10%。代理返佣标准的高低,主要取决于客户的销售额。如果客户的销售额越高,那么代理返佣标准就越高。 其次,阿...
    99+
    2023-10-27
    阿里 标准
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作