如果您可以访问 Java 反编译器,则可以使用反编译器打开 SQLJDBC JAR 并检查这个反编译的类:com\microsoft\sqlserver\jdbc\SQLJdbcVersion.class
它显示如下版本信息:
final class SQLJdbcVersion
{
static final int major = 4;
static final int minor = 0;
static final int MMDD = 2206;
static final int revision = 100;
}
我不知道该类是否在所有版本的 SQLJDBC JAR 中都可用,但我在 3.0、4.0 和 4.2 JAR 中找到了它。 GitHub(下面的链接)也显示它存在于版本 6 到 8 中。所有版本似乎都包含“主要”和“次要”变量;包含的其他变量因版本而异。
要从命令行获取该数据,也许您可以创建一个脚本来调用反编译器,然后从反编译文件中提取主要和次要值,并删除反编译文件。
SQL Server JDBC 驱动程序是开源的,根据此页面:
https://docs.microsoft.com/en-us/sql/connect/jdbc/frequently-asked-questions-faq-for-jdbc-driver?view=sql-server-ver15
JDBC 驱动是开源的,源代码可以在GitHub 找到。
因此,反编译 JAR 应该没有合法性问题。
代码的当前 GitHub “dev” 分支版本显示以下值:
final class SQLJdbcVersion {
static final int major = 8;
static final int minor = 4;
static final int patch = 0;
static final int build = 0;
/*
* Used to load mssql-jdbc_auth DLL.
* 1. Set to "-preview" for preview release.
* 2. Set to "" (empty String) for official release.
*/
static final String releaseExt = "";
}