关于JAVA中的JNA

article/2025/10/8 4:24:00

1、jna是什么

jna是java native access的简称,用他可以调用C、C++代码,特别是windows中强大的库文件(dll,在linux下是so文件),这样java就可以操控底层的一些东西,比如调用加密机、智能卡之类的

2、jna下载

在maven下直接找jna就有,对应的jar包是jna-3.3.0.jar

3、调用msvcrt.dll(这是windows自带动态链接库 ),不用找,他在system32下

Java代码   收藏代码
  1. package com.jnastudy.test;  
  2.   
  3. import com.sun.jna.Library;  
  4. import com.sun.jna.Native;  
  5. import com.sun.jna.Platform;  
  6. import com.sun.jna.platform.win32.Kernel32;  
  7. import com.sun.jna.platform.win32.User32;  
  8.   
  9. public class JNATest {  
  10.     //编写一个接口,必须继承Library,他要在加载库文件时用  
  11.     public interface CLibrary extends Library {  
  12.         //加载库文件,Platform.isWindows()可以判断系统类型  
  13.         CLibrary INSTANCE = (CLibrary) Native.loadLibrary(  
  14.                 (Platform.isWindows() ? "msvcrt" : "c"), CLibrary.class);  
  15.         //定义方法,与c语言标准的一致  
  16.         void printf(String format, Object... args);  
  17.     }  
  18.     public static void main(String[] args) {  
  19.         //调用  
  20.         CLibrary.INSTANCE.printf("%d----%f--",5,5.2f);  
  21.           
  22.         final User32 user32 = User32.INSTANCE;  
  23.         System.out.println(user32);  
  24.         final Kernel32 kernel32 = Kernel32.INSTANCE;  
  25.         System.out.println(kernel32.toString());  
  26.     }  
  27. }  

 4、java类型和C类型的映射



 


转载:http://ligson.iteye.com/blog/1294518


http://chatgpt.dhexx.cn/article/E5LKfnec.shtml

相关文章

JNA与JNI谁更受青睐呢

JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架。非常强大、易用。其中JNA是对JNI的封装,能让java使用者更好的使用本地的动态库 一、JNA与JNI的比较 JNI: JNI允许Java代码和其…

JNA实战系列:第一个简单的JNA开发程序

文章目录 第一个简单的JNA的开发程序一、引入依赖包二、创建一个接口,继承Libary类三、在Java中使用dll中封装的方法总结:JNA中调用C、CDLL或者.so库中的函数的步骤总结:思考 第一个简单的JNA的开发程序 假如有一个helloworld.h和一个helloworld.dll文件&#xff0…

Java通过JNA调用so库 Linux环境

记录一下自己的JNA调研成果,需求是公司同事用C写了一个红外测温SDK,编译成so文件后提供给客户使用。客户需要一个Linux环境用Java调用so库的一个demo,刚好就我一个懂点Java,所有有了这次调研。 因为JNA相关资料实在太少&#xff…

JNI便捷开发框架JNA框架之入门(一)

一、JNA介绍 JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架。它提供一组Java工具类用于在运行期动态访问系统本地共享类库而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中…

JNA简介

2019独角兽企业重金招聘Python工程师标准>>> JNA JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只…

JNA的概念

1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C)写的代码进行交互,只要遵守调用约定即可。首先看下JNI调用C/C的过程,注意写程序…

Java 之 JNA(调用第三方库)

是什么? 一、了解JNA之前,我们先了解一下JNA的前身JNI(Java Native Interface):通过使用 Java本地接口书写程序,可以确保代码在不同的平台上方便移植。 [1] 从Java1.1开始,JNI标准成为java平台…

JNA实战笔记汇总(一)—— JNA简介及demo环境创建

目录 1、简介 2、原理 3、配置环境,创建demo 3.1 搞清楚.dll/.so文件适用环境 3.2 创建一个普通的maven项目 3.2.1 将.dll/.so文件放在resources根路径下 3.2.2 pom.xml文件添加jna依赖 3.2.3 编写一个CLibrary接口,继承Library接口 3.2.4 编写…

ROW(行)与COLUMN(列)

数列数,COLUMNS(A:B)2,即A到B一共两列。

column函数HTML5,column函数 excel中column函数的使用方法

column函数是一种查询的工具,我相信许多人都不会使用到这一个函数,因此在实际工程当中并不是十分的常见,然而这一款韩束如果能够掌握,对我们的工作也是非常有帮助的,接下来我们就一起来好好的了解一下这个函数究竟该如何使用。 column函数——column函数的使用方法 1.colu…

Duplicate column name ‘xxx_column‘

错误场景: 使用MyBatisPlus分页查询的情况下列名重复(注:select查询不报错, 映射正常) 例如 → select id, name, name from user 解决方法: 列名重复,删除重复的列名, 保证留一个就可以了 错误原因: 根据错误定位到PaginationInterceptor的queryTotal方法 最终…

mysql插入报错:colum xxx cannot be null

测试同学催促我赶紧解决上面的问题,首先看了下数据库这个字段确实是必填的,默认是当前时间 可是看了下代码发现mybatis的sql语句插入的时候包含了这个operate_time字段 那么讲道理必需给实体对象的operateTime字段赋值才行,可线上代码明明没有…

Vue template中函数获取el-table-colum中的属性值

方案如下&#xff1a; <el-table-column prop"id" label"操作"><template slot-scope"scope"><istyle"margin: 0 10px; cursor: pointer"click"clickItemInfo(scope.$index, scope.row,scope.column,scope.row.i…

hbase架构原理之region、memstore、hfile、hlog、columm-family、colum、cell

**鄙人的新书《elasticsearch7完全开发指南》&#xff0c;欢迎订阅&#xff01;** ----- https://wenku.baidu.com/view/8ff2ce94591b6bd97f192279168884868762b8e7 **《kibana权威指南》** ---- https://wenku.baidu.com/view/24cfee1ce43a580216fc700abb68a98270feac21 Hbas…

Row Column

Row Column 参考&#xff1a; Row classFlutter Layout Cheat SheetFlutter — Row/Column Cheat Sheet mainAxisAlignment和crossAxisAlignment 属性mainAxisAlignment和crossAxisAlignment mainAxisAlignment - 表示的是主轴的对齐方式crossAxisAlignment - 表示的是次轴…

Mybatis中resultMap的Colum和property属性

1&#xff1a; resultMap标签 当我们的数据库字段与实体类的属性不一致时&#xff0c;就需要使用该标签进行一一映射。 2&#xff1a;使用情况 2.1 简单查询 <resultMap id"这个resultMap的id" type"对应实体类的全限定类名"><id column"…

CSS3多列布局columns相关属性

tip&#xff1a;有问题或者需要大厂内推的我脉脉哦&#xff1a;丛培森 ٩( ‘ω’ )و CSS3中增加了可以实现多列布局的属性 在此之前的实现很麻烦可能需要各种定位 现在我们只需要一个属性就可以实现 多列布局类似于我们的报纸布局 这样可以方便读者观看 #多列数量与多列宽度#…

mysql5.7以上报错:Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated colum

这里写目录标题 一、前言二、解决方法临时解决&#xff1a;永久解决&#xff1a; 一、前言 在写sql时报错信息&#xff1a; 1055 - Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘pms.ru.role_id’ which is not functionall…

Vue+EleMentUI实现el-table-colum表格select下拉框可编辑

说明&#xff1a; 在进行采购入库的过程中&#xff0c;有必要对表格中的一行进行快速编辑保存&#xff0c;节省时间&#xff0c;提高工作效率&#xff01;&#xff0c;而不是每次编辑都要弹窗才可编辑 源码&#xff1a;https://gitee.com/charlinchenlin/store-pos 效果图&am…

Flutter学习(三)Row,Colum布局

主题 本文将介绍&#xff0c;flutter中的row&#xff0c;colum的用法。通俗来说&#xff0c;就是横向布局和纵向布局的用法。 开发环境 win10 androidstudio2022.1.1 jdk11 fluttersdk-flutter_windows_3.7.8 源码 文末将会附上完整开源demo地址 开发过程 首先&#xff…