java - 无法加载类 com.microsoft.sqlserver.jdbc.SQLServerDriver?

标签 java sql-server-2008 jdbc

我在尝试连接到 SQL Server 2008 数据库时遇到问题,以下是完整的异常:

java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class com.microsoft.sqlserver.jdbc.SQLServerDriver)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2531)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
    java.lang.ClassLoader.loadClassInternal(Unknown Source)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Unknown Source)
    ma.ancfcc.dao.ConnexionSigest.getConnection(ConnexionSigest.java:120)
    ma.ancfcc.action.VerifyLoginAction.execute(VerifyLoginAction.java:70)
    org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

异常指向这行代码:

private static String DRIVER_SQLSERVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";

我该如何解决这个问题?

最佳答案

当您尝试加载使用比运行应用程序的 Java 版本更高的 Java 版本编译的类时,会引发此异常。

参见UnsupportedClassVersionError

  1. 使用 java -version 检查运行应用程序的 JVM 版本
  2. 按照 how to check the jdk version used to compile a .class file 中的建议检查类文件的版本- 使用javap -verbose com.microsoft.sqlserver.jdbc.SQLServerDriver
  3. 如果 jar 打算与更高版本的 Java 一起使用,您可以:
    • 使用更高版本的 JVM 来运行应用
    • 下载旧版本的驱动程序

关于java - 无法加载类 com.microsoft.sqlserver.jdbc.SQLServerDriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20953444/

相关文章:

.net - 针对 SQL Server 2008 运行时 SqlDataReader.HasRows 是否存在错误?

mysql - 临时表不存在,未按预期创建?数据库管理系统

java - 与在 pgadmin 中执行查询相比,使用 JDBC 执行 Postgresql 查询需要花费更多时间

java - 具有乐观锁定的 Active Record 模式 - 更新前读取与在应用程序中存储版本?

java - 已清理的项目,我的 R.java 文件不会因为 XML 文件中的错误而生成?

java - UnknownFieldException - 没有这样的字段

java - 最好将项目 jar 文件 Mavenize 或将它们放在 WEB-INF/lib 中?

sql-server - 如何在 SQL Server 中将文本数据更改为数字?

java - 在 Jackson 中序列化/反序列化别名基元,无需太多样板

c# - EF delete 尝试更新外键