# Java JNI框架实现指南
## 简介
在本文中,将介绍如何使用Java Native Interface(JNI)框架实现与本地代码的交互。JNI是Java提供的一种机制,用于在Java应用程序中调用本地(C/C++)代码。
## 整体流程
下表总结了实现Java JNI框架的步骤:
| 步骤 | 描述 |
| --- | --- |
| 1 | 编写Java接口 |
| 2 | 声            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-08 07:21:11
                            
                                41阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一:关于java开发的框架我们可以先从java web开发框架的变迁来给大家简单叙述一下:1 SSH ——Struts+Spring+Hibernate2 Spring +SpringMVC + Hibernate/ibatis3 SSM —— Spring+SpringMVC+Mybatis—— 主流4  Springboot+Mybatis——兴起5 微服务框架——springboot+dub            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-12 11:04:58
                            
                                62阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、例如我们自己编译一个so库,我们的其他模块要加载如何操作了首先在c盘新建立一个文件夹sb,在sb下面新建立一个文件夹jni,如果你要使用ndk编译so库,必须需要有jni目录2、在jni目录下面建立下面几个文件我们来看看c文件//
// Created by wei.yuan on 2017/11/2.
//
#include<jni.h>
#include<logback_            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-31 11:31:49
                            
                                232阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            android上 jni开发 应用构建过程基本一致,下面 结合最近 在android 上实现 jni层 绘制  surfaceview 功能 阐述 带            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-08-10 11:53:36
                            
                                145阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、Java内存    Java程序所涉及的内存可以从逻辑上划分为两部分:Heap Memory和Native Memory。  1)Heap Memory:   供Java应用程序使用的,所有java对象的内存都是从这里分配的,它不是物理上连续的,但是逻辑上是连续的。可通过java命令行参数“-Xms, -Xmx”大设置Heap初始值和最大值。 java -Xmx1024m -Xms1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-06 23:20:49
                            
                                212阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            注入安卓进程,并hook java世界的方法及改进            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-26 11:20:52
                            
                                160阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            现象:进行Java程序的编译与运行。在操作过程中报错,具体为javac编译成功,而java运行报错;如下图: 错误为:Error: A JNI error has occurred,please check your installation and try again (错误:JNI错误发生,请检查您的安装,然后重试。)查因:1.使用命令:分别查看javac、java的版本号javac            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-31 21:18:15
                            
                                453阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             JAVA JNI,中文含义是java本地调用接口。
说得通俗一点,就是在java程序中可以调用Windows api和c/c++程序。
范例:
在目录E:\kingbase\workspace_72\jni003\src下有两个文件:
TestAPI.java:
public class TestAPI {   &n            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2012-03-03 16:18:21
                            
                                524阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            jni非常好的一篇文章 http://m.blog.csdn.net/article/details?id=22827307 JAVA JNI介绍 http://blog.csdn.net/cyg0810/article/details/7918029 用 JNI 进行 JAVA 编程 http:/            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-05 17:49:25
                            
                                215阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              这个错误是真的有时候让人头疼,为了让有同样问题的同学少走弯路,以此分享我处理这个报错的经验。  这个错误很明显是无法加载到指定的动态链接库,但是为什么无法加载确没有具体显示出来,是路径不对呢,还是dll的平台与当前jvm的平台不匹配没有在错误信息中显示出来。所以需要一步一步排除找原因。  1)首先你要明确知道这个dll动态链接库是32位的还是64位的编译的,与之对应的就是你的java版本也是要            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-26 23:38:37
                            
                                238阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            java jni入门 超详细            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-11-09 13:37:11
                            
                                439阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                  JNI技术的出现主要是基于三个方面的应用需求:1. 解决性能问题      Java具有平台无关性,这使人们在开发企业级应用的时候总是把它作为主要候选方案之一,但是性能方面的因素又大大削弱了它的竞争力。为此,提高Java的性能就显得十分重要。Sun公司及Java的支持者们为提高Java的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-07 03:52:48
                            
                                76阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            交叉编译	在一个平台上去编译另一个平台上可以执行的本地代码			            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2023-05-05 17:08:16
                            
                                526阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最近在开发j2ee的项目中,需要读取面部识别考勤终端机中的数据,厂商提供二次开发需要的就是一个开发指南说明书和2个dll文件:HwDevComm.dll、HDCP_Utils.dll。其中重要的就是HwDevComm.dll。用到的函数有3个:1、int HwDev_Execute(  char * pDevInfoBuf, unsigned long nDevInfoLen,
char * pS            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-09 08:55:40
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#wp5901JNI FunctionsChapter 4Note the use of the term “must” to describe restrictions on JNI programmers. For example, when            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-29 15:11:18
                            
                                174阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            public class testdll 
  { 
  static 
  { 
  System.loadLibrary("goodluck"); 
  } 
  public native static int get(); 
  public native static void set(int i); 
  public static void main(String[] args) 
            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-12 14:36:02
                            
                                99阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            监控Java层和JNI Native层Crash,分析.so库报错的堆栈信息Crash(应用崩溃)是由于代码异常而导致 App 非正常退出,导致应用程序无法继续使用,所有工作都停止的现象。发生 Crash 后需要重新启动应用(有些情况会自动重启),而且不管应用在开发阶段做得多么优秀,也无法避免 Crash 发生,特别是在Android 系统中,系统碎片化严重、各 ROM 之间的差异,甚至系统Bug            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-13 12:04:40
                            
                                117阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            JNI本地方法访问Java属性和方法在JNI调用中,不仅仅Java可以调用本地方法,本地代码也可以调用Java中的方法和成员变量。在Java1.0中“原始的”Java到C的绑定中,程序员可以直接访问对象数据域。然而,直接方法要求虚拟机暴露他们的内部数据布局,基于这个原因,JNI要求程序员通过特殊的JNI函数来获取和设置数据以及调用java方法。  取得代表属性和方法的jfiel            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-08 22:14:38
                            
                                54阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                什么是JNI呢 就是  java  native interface       是 sun公司提供给我们的一个可以调用本地 非 java语言代码 的接口 .      JNI技术 实现了java调用本地方法 ,但是有破坏了 java的 跨平            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-03 00:08:11
                            
                                138阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0错误信息:原因:因为重新配置了别的版本的jdk、可能你的电脑中            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-06 13:41:32
                            
                                185阅读
                            
                                                                             
                 
                
                                
                    