jacob调用精伦身份证读卡器
最近接手一个任务,在nc人力资源模块通过精伦的身份证读卡器获取人员信息;
查阅了网上的资料,尝试了多种方式,最后采取了以下这种=调用读卡器dll
第一步: 在工程中导入 jna.jar 这个包。
第二步: 将相关dll放到系统目录,注意64位和32位有区别的
第三步: java代码
package nc.itf.idrControl; import com.sun.jna.*;public class test {interface CLibrary extends Library { CLibrary sdtapi = (CLibrary)Native.loadLibrary((Platform.isWindows() ? "sdtapi" : "c"),CLibrary.class);int InitComm(int port);int Authenticate();int ReadBaseInfosPhoto(byte[] Name,byte[] Gender,byte[] Folk,byte[] BirthDay,byte[] Code,byte[] Address,byte[] Agency,byte[] ExpireStart,byte[] ExpireEnd,String Dir);}public static void main(String[] args) throws Exception {byte sid[] = new byte[37];byte name[] = new byte[31];byte sex[] = new byte[3];byte folk[] = new byte[10];byte birth[] = new byte[9];byte code[] = new byte[19];byte add[] = new byte[71];byte agency[] = new byte[31];byte expirestart[] = new byte[9];byte expireend[] = new byte[9];//初始化端口if (CLibrary.sdtapi.InitComm(1001) == 1){//卡认证 int ret = CLibrary.sdtapi.Authenticate();if(ret == 1){//读取卡信息ret = CLibrary.sdtapi.ReadBaseInfosPhoto(name,sex,folk,birth,code,add,agency,expirestart,expireend,"D:\\Project\\20180105zhongnan\\nchome_bk\\shenfenzheng");if(ret == 1){ System.out.println(new String(name,"GBK"));System.out.println(new String(sex));System.out.println(new String(folk));System.out.println(new String(birth));System.out.println(new String(code));System.out.println(new String(add));System.out.println(new String(agency));System.out.println(new String(expirestart));System.out.println(new String(expireend));}}}else{System.out.println("读取失败!");}} }
第四步: 总结
相关dll,与提供读卡器的厂商沟通,他们会提供dll和demo;当然没有的话,网上大多数也能找到,我的就是在CSDL花费了5个大洋下的....
后续:在提交到服务器上运行后,客户使用UClient登陆客户端访问功能时出现一个问题:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError:
Could not initialize class nc.ui.hi.psndoc.action.CardImportActionReadCard$CLibrary
at nc.ui.hi.psndoc.action.CardImportActionReadCard.getPsndocVO(CardImportActionReadCard.java:80)
at nc.ui.hi.psndoc.action.CardImportAction.getDefaultValue(CardImportAction.java:210)
at nc.ui.hi.psndoc.action.CardImportAction.doAction(CardImportAction.java:88)
at nc.ui.uif2.NCAction.actionPerformed(NCAction.java:85)
at nc.funcnode.ui.action.ActionDelegate.actionPerformed(ActionDelegate.java:296)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at nc.ui.plaf.basic.UIMenuItemUI.doClick(UIMenuItemUI.java:1191)
at nc.ui.plaf.basic.UIMenuItemUI$MouseInputHandler.mouseReleased(UIMenuItemUI.java:1016)
at java.awt.Component.processMouseEvent(Unknown Source)
咋一看去以为是类访问权限不够引起的,多番测试找出原因是因为使用64位jdk运行客户端无法解析以上代码,在UClient设置为32位jdk运行;问题的具体原因没有进一步研究,猜测是该jna类库不支持64位jdk
========再次遇到了这类问题,原因是dll有32位与64位之分,即32位dll需要32jdk解析。如果是java调用,可以通过vs查询dll的版本:
转载于:https://www.cnblogs.com/whz1hao/p/8508773.html
jacob调用精伦身份证读卡器相关推荐
- .net core 3.1精伦身份证读卡器IDR210-2(部标版)二次开发
业务需求 在学员录入的时候添加一个读取身份证填充对应信息的功能,但遇到如下问题: 官方提供的demo读取身份证使用了com组件和activeX控件的技术,并且只支持IE,我们的前端项目没有兼容IE 技 ...
- android使用精伦身份证读卡器读身份证
使用的设备是iDR210 1.加上权限 <uses-feature android:name="android.hardware.usb.host" /><use ...
- 精伦身份证阅读器php_精伦IDR210-1(免驱)身份证阅读器
产品概述 精伦IDR210-1身份证读卡器是一款多功能 .免装驱动程序的射频卡读写器,可根据需求配置不同部件实现不同射频卡的读取和写入功能. 精伦IDR210-1配置了专用身份证安全控制模块(SAM) ...
- 精伦iDR210读卡器驱动安装教程
身份证读卡器安装步骤 下载好身份证驱动(没有可以留言或者自行百度),然后解压好:步骤1:接入机具 接入身份证读卡器,若为首次安装,则会相继在电脑右下方弹出两个消息框,如图所示. 此时在设备管理器当中出 ...
- 精伦安全模块-身份证读卡器对接-Qt调用SDK
文章目录 精伦身份证读卡器 SDK qt调用测试读取身份证 库文件添加 编译器 测试代码 编译运行 精伦身份证读卡器 SDK 使用的是通用二次开发包V3.2的sdk Dewlt.dll JpgDll. ...
- 无https证书调用摄像头以及精伦读卡器IDR210-1调用安装
1.首先 安装 360极速浏览器(可百度下载,也可运行360cse_11.0.2116.0.exe安装包) 1)右击 桌面 --> 360极速浏览器-快捷方式 -->属性 -->找到 ...
- web调用身份证读卡器品牌选择及技术实现
做过的厂家设备: 精伦(IDR210-NMG,iDR210), 神思(SS628(100),SS628(100)版本号004U,SS628(100),SS728M), 信通(对接后取消), 华视(CV ...
- python能调用身份证读卡器吗_华视身份证读卡机Python二次开发
最近项目中用到华视身份证读卡机,那么本篇文章就是根据Python代码来实现对华视身份证读卡机中读卡操作. 华视身份证阅读器SDK手册 下面是官方提供的SDK使用手册,我就不描述到本篇文章中了,相信大家 ...
- python能调用身份证读卡器吗_用Python在Linux下调用新中新DKQ-A16D读卡器,读二代证数据...
1.背景 最近在研究二代证读卡器,手头上的设备是新中新DKQ-A16D,在官网(https://www.onecardok.com.cn/download)逛了一圈,发现Win下的示例,浏览器插件很多 ...
最新文章
- Oracle日期处理
- torch.Tensor和torch.tensor的区别
- 【转】mysql 分析查找执行效率慢的SQL语句
- 数据结构特性解析 (四)LinkedList
- TF之RNN:实现利用scope.reuse_variables()告诉TF想重复利用RNN的参数的案例
- singleton 类_在Java中对Singleton类进行双重检查锁定
- ECCV 2020 谷歌论文盘点—Poster 篇
- Qt QString to char*
- 处理IOStream异常
- 555定时器+74系列芯片搭建八路抢答器,30s倒计时,附Proteus仿真等
- kindle 新手入门
- 必备技能!聊聊二维码扫码登录的原理
- 如何更改Excel2016中折线图的连接点颜色和样式?
- 2022茶艺师(中级)考题及模拟考试
- 动态gif图如何裁剪?一个小窍门教你在线裁剪动图
- C语言strstr()函数用法-字符串查找
- 文本三剑客之AWK详解
- Linux服务器运行状况全面监测
- Hibernate入门6.Hibernate检索方式
- 直播泡沫?3.5万亿红人经济的未来在这几个字里
热门文章
- 2.3 Bean装配
- Python小爬虫:爬取开心网日记,乐趣无穷
- 物联网平台Thingsboard3.2.1源码编译记录
- el-table的自定义行高设置
- 5000 字带你快速入门 Apache Kylin
- 专访前C#编译器组首席工程师Eric Lippert
- PyCharm 安装 jieba 显示“No module named jieba”解决方法
- C#窗口程序入口函数
- Transact-SQL参考:sp_who
- 词云python灿烈_如何用Python做中文词云?