java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
大家好,我是 程序员码递夫。
问题
最近把某java项目的 sqlserver 的JDBC驱动升级到了较新的版本(mssql-jdbc-12.8.0.jre8.jar) ,在开发环境运行挺好的, 但是我打包成 jar包运行的时候,却提示报错,java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver,类似
分析
从错误提示中,可以看到是 Java类未找到的异常, 说明在 CLASSPATH 路径没有找到相关的 库。
JDBC 驱动程序不是 Java SDK 的一部分。如果要使用它,则必须将类路径设置为包含sqljdbc.jar文件或sqljdbc4.jar文件。如果类路径缺少 sqljdbc.jar 或 sqljdbc4.jar 的条目,您的应用程序将抛出常见的“Class not found”异常。
注意:sqljdbc分为 版本3和版本4的, sqljdbc.jar 或 sqljdbc4.jar 文件只能在 类路径 下出现一个。
解决问题
1、我把 sqljdbc.jar 放到程序运行的lib 目录下,重新运行 jar 包,没有问题了,
2、启动 的命令行, 参考如下
jre\bin\java -Xms512m -Xmx1024m -Djava.library.path=./lib -XX:ErrorFile=./logs/hs_err_%d.log -jar Gateway.jar
3、 lib目录下的文件,红色框住的文件必不可少。
参考
https://learn.microsoft.com/zh-cn/archive/msdn-technet-forums/b425c201-9882-4a48-b049-4004f202b0c6