Windows平台下JDBCDriver找不到动态链接库

问题描述

在Windows10 x64平台上,安装TDengine Database的Windows客户端之后,通过JDBCDriver无法连接到服务端,错误信息为

java.lang.UnsatisfiedLinkError: no taos in java.library.path
TDengine 时序数据库 - Windows平台下JDBCDriver找不到动态链接库 20191028144331925

问题分析

此错误信息为java无法找到或者装载taos.dll,排查步骤如下

  • C:\windows\system32目录查看是否存在taos.dll
TDengine 时序数据库 - Windows平台下JDBCDriver找不到动态链接库 20191028144302180
  • 检查java.library.path
TDengine 时序数据库 - Windows平台下JDBCDriver找不到动态链接库 20191028144317576
  • 明确指定taos.dll的路径
System.load("C://TDengine//driver//taos.dll");
TDengine 时序数据库 - Windows平台下JDBCDriver找不到动态链接库 20191028144533250
  • 检查java的版本
TDengine 时序数据库 - Windows平台下JDBCDriver找不到动态链接库 2019102814451999

输出信息表示java是32位版本的,如果是64位的jdk,会显示如下信息

TDengine 时序数据库 - Windows平台下JDBCDriver找不到动态链接库 2019102814462758.png

结论

无论是Windows平台或者Linux平台,JDBCDriver找不到动态链接库都只能有三种原因

  • taos.dll或者libtaos.so不在java.library.path
  • taos.dll或者libtaos.so与发布的JDBCDriver不匹配,一些JNI接口函数没有实现,所以load失败
  • java版本应该为64