2014-01-06 85 views
0
我有一个问题,同时试图连接到SQL Server 2008数据库

,下面是完整的例外:无法加载类com.microsoft.sqlserver.jdbc.SQLServerDriver?

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"; 

如何我能解决这个问题吗?

+0

异常的旧版本不能指向你要求的代码行。 – Kayaman

+0

@Kayaman为什么?我自己验证了这一点:) – mounaim

+0

因为该行是一个字符串变量声明,它不能产生该堆栈跟踪。卢克拉扎罗维奇的回答是正确的。如果你声称它不适用于java 1.7,那么你又错了。你发出的信息不好,所以很难帮助你。 – Kayaman

回答

2

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

UnsupportedClassVersionError

  1. 检查您运行使用java -version
  2. 检查类文件的版本,您的应用程序的建议在how to check the jdk version used to compile a .class file JVM的版本 - 使用javap -verbose com.microsoft.sqlserver.jdbc.SQLServerDriver
  3. 如果罐子的目的是与使用更高版本的Java,您可以:
    • 使用更高版本的JVM运行应用程序
    • 下载驱动程序
+0

感谢@lukelazarovic,我正在运行jre6,我怎么能知道我的SQL SERVER驱动程序与哪个版本的JVM兼容?...用你的答案的逻辑,如果我使用jre 1.7,我不应该有任何问题,这对我来说不是这样,我仍然在1.7版本中得到同样的例外。 – mounaim

+0

我已经更新了我的答案 - 尝试找出该类文件的版本,并使用此信息更新您的问题。 – lukelazarovic

相关问题