最近接手一个任务,在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调用精伦身份证读卡器相关推荐

  1. .net core 3.1精伦身份证读卡器IDR210-2(部标版)二次开发

    业务需求 在学员录入的时候添加一个读取身份证填充对应信息的功能,但遇到如下问题: 官方提供的demo读取身份证使用了com组件和activeX控件的技术,并且只支持IE,我们的前端项目没有兼容IE 技 ...

  2. android使用精伦身份证读卡器读身份证

    使用的设备是iDR210 1.加上权限 <uses-feature android:name="android.hardware.usb.host" /><use ...

  3. 精伦身份证阅读器php_精伦IDR210-1(免驱)身份证阅读器

    产品概述 精伦IDR210-1身份证读卡器是一款多功能 .免装驱动程序的射频卡读写器,可根据需求配置不同部件实现不同射频卡的读取和写入功能. 精伦IDR210-1配置了专用身份证安全控制模块(SAM) ...

  4. 精伦iDR210读卡器驱动安装教程

    身份证读卡器安装步骤 下载好身份证驱动(没有可以留言或者自行百度),然后解压好:步骤1:接入机具 接入身份证读卡器,若为首次安装,则会相继在电脑右下方弹出两个消息框,如图所示. 此时在设备管理器当中出 ...

  5. 精伦安全模块-身份证读卡器对接-Qt调用SDK

    文章目录 精伦身份证读卡器 SDK qt调用测试读取身份证 库文件添加 编译器 测试代码 编译运行 精伦身份证读卡器 SDK 使用的是通用二次开发包V3.2的sdk Dewlt.dll JpgDll. ...

  6. 无https证书调用摄像头以及精伦读卡器IDR210-1调用安装

    1.首先 安装 360极速浏览器(可百度下载,也可运行360cse_11.0.2116.0.exe安装包) 1)右击 桌面 --> 360极速浏览器-快捷方式 -->属性 -->找到 ...

  7. web调用身份证读卡器品牌选择及技术实现

    做过的厂家设备: 精伦(IDR210-NMG,iDR210), 神思(SS628(100),SS628(100)版本号004U,SS628(100),SS728M), 信通(对接后取消), 华视(CV ...

  8. python能调用身份证读卡器吗_华视身份证读卡机Python二次开发

    最近项目中用到华视身份证读卡机,那么本篇文章就是根据Python代码来实现对华视身份证读卡机中读卡操作. 华视身份证阅读器SDK手册 下面是官方提供的SDK使用手册,我就不描述到本篇文章中了,相信大家 ...

  9. python能调用身份证读卡器吗_用Python在Linux下调用新中新DKQ-A16D读卡器,读二代证数据...

    1.背景 最近在研究二代证读卡器,手头上的设备是新中新DKQ-A16D,在官网(https://www.onecardok.com.cn/download)逛了一圈,发现Win下的示例,浏览器插件很多 ...

最新文章

  1. Oracle日期处理
  2. torch.Tensor和torch.tensor的区别
  3. 【转】mysql 分析查找执行效率慢的SQL语句
  4. 数据结构特性解析 (四)LinkedList
  5. TF之RNN:实现利用scope.reuse_variables()告诉TF想重复利用RNN的参数的案例
  6. singleton 类_在Java中对Singleton类进行双重检查锁定
  7. ECCV 2020 谷歌论文盘点—Poster 篇
  8. Qt QString to char*
  9. 处理IOStream异常
  10. 555定时器+74系列芯片搭建八路抢答器,30s倒计时,附Proteus仿真等
  11. kindle 新手入门
  12. 必备技能!聊聊二维码扫码登录的原理
  13. 如何更改Excel2016中折线图的连接点颜色和样式?
  14. 2022茶艺师(中级)考题及模拟考试
  15. 动态gif图如何裁剪?一个小窍门教你在线裁剪动图
  16. C语言strstr()函数用法-字符串查找
  17. 文本三剑客之AWK详解
  18. Linux服务器运行状况全面监测
  19. Hibernate入门6.Hibernate检索方式
  20. 直播泡沫?3.5万亿红人经济的未来在这几个字里

热门文章

  1. 2.3 Bean装配
  2. Python小爬虫:爬取开心网日记,乐趣无穷
  3. 物联网平台Thingsboard3.2.1源码编译记录
  4. el-table的自定义行高设置
  5. 5000 字带你快速入门 Apache Kylin
  6. 专访前C#编译器组首席工程师Eric Lippert
  7. PyCharm 安装 jieba 显示“No module named jieba”解决方法
  8. C#窗口程序入口函数
  9. Transact-SQL参考:sp_who
  10. 词云python灿烈_如何用Python做中文词云?