ZKTeco 中控考勤机M300 plus java开发步骤 使用jacob 调用中控考勤机dll(详细配置)
我们公司最近在做中控智慧的一个考勤机的系统,主要目的是通过我们的系统对考勤机的一些操作,以及获取到考勤机的数据。有一些开发的经验分享出来,以下是通过java使用jacob调用中控考勤机sdk方法。
开发前的准备工作
1、jacob-1.19版本
注意使用的本机jdk版本号为1.8以上必须使用jacob-1.19,其他版本不适合高版本jdk,下载链接:https://sourceforge.net/projects/jacob-project/
2、jdk1.8 64位(注意使用的jdk和jacob的操作位数要相同,负责会报错);
3、普通导入jar包方案:将jacob.jar 放入项目 WEB-INFO/lib下导入:
我是使用的是maven管理的,所以我直接导入pom文件:
<dependency>
<groupId>com.jacob</groupId>
<artifactId>jacob</artifactId>
<version>1.19</version>
</dependency>
此处的导入jar文件应该会报错,所以我直接将jacob-1.19.jar放在所对应的目录位置。可能版本号会爆红,但不影响使用。
4、将jacob-1.19-x64.dll 放入 jdk/bin目录下以及jdk/jre/bin,我的是:D:\Java\jdk1.8\bin;D:\Java\jdk1.8\jre\bin;
另外我为了以防万一,也将c:\windows\syswow64;C:\Windows\System32 目录下存放一份。
5、将中控考勤机官方提供的sdk 的dll文件全部放入 c:\windows\syswow64 目录下(我的是64位系统,32位的话没测试,放入system32目录下);
中控官网的sdk下载链接:https://www.zkteco.com/cn/download_catgory/45.html
6、这里很重要一定要,一定要管理员身份运行cmd
注册zkemkeeper.dll —>
regsvr32 c:\windows\syswow64\zkemkeeper.dll
只有注册成功才可以连接到考勤机
7、成功后如下提示:
进行java代码测试
然后进行连接测试,我使用的是内网,需要将考勤机的局域网考勤方式打开。
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 中控考勤机sdk函数调用类
* @author zhangwei
*
*/
public class ZkemSDK {
//zkemkeeper.ZKEM.1
private static ActiveXComponent zkem = new ActiveXComponent("zkemkeeper.ZKEM.1");
/**
* 链接考勤机
* @param address 考勤机地址
* @param port 端口号
* @return
*/
public boolean connect(String address,int port){
boolean result = zkem.invoke("Connect_NET",address,port).getBoolean();
return result;
}
/**
* 断开考勤机链接
*/
public void disConnect(){
zkem.invoke("Disconnect");
}
}
/**
* 考勤机链接测试
* @author wangchao
*
*/
public class Main {
public static void main(String[] args) {
ZkemSDK sdk = new ZkemSDK();
boolean connFlag = sdk.connect