问题描述
在Windows10 x64平台上,安装TDengine Database的Windows客户端之后,通过JDBCDriver无法连接到服务端,错误信息为
java.lang.UnsatisfiedLinkError: no taos in java.library.path
![Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库 Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库](https://tdengine.com/wp-content/uploads/2019/12/20191028144331925.png)
问题分析
此错误信息为java无法找到或者装载taos.dll,排查步骤如下
- 到
C:\windows\system32
目录查看是否存在taos.dll
![Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库 Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库](https://tdengine.com/wp-content/uploads/2019/12/20191028144302180.png)
- 检查
java.library.path
![Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库 Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库](https://tdengine.com/wp-content/uploads/2019/12/20191028144317576-1024x190.png)
- 明确指定
taos.dll
的路径
System.load("C://TDengine//driver//taos.dll");
![Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库 Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库](https://tdengine.com/wp-content/uploads/2019/12/20191028144533250-1024x246.png)
- 检查java的版本
![Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库 Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库](https://tdengine.com/wp-content/uploads/2019/12/2019102814451999-1024x340.png)
输出信息表示java是32位版本的,如果是64位的jdk,会显示如下信息
![Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库 Windows平台下JDBCDriver找不到动态链接库 - TDengine Database 时序数据库](https://tdengine.com/wp-content/uploads/2019/12/2019102814462758.png-1024x535.jpeg)
结论
无论是Windows平台或者Linux平台,JDBCDriver找不到动态链接库都只能有三种原因
taos.dll
或者libtaos.so
不在java.library.path
中taos.dll
或者libtaos.so
与发布的JDBCDriver
不匹配,一些JNI接口函数没有实现,所以load失败- java版本应该为
64
位