22

我正在尝试使用 Java JTDS 驱动程序连接到我在 Scala 中的数据库。但是,每当我尝试使用它时,我都会收到一个错误,即版本(java?)是错误的。

java.lang.UnsupportedClassVersionError:net/sourceforge/jtds/jdbcx/JtdsDataSource:不支持的major.minor版本51.0

object DaoDriverAdaptor {
  import java.sql.{DriverManager, Connection}

  private def loadDriver() {
    try {
      Class.forName("net.sourceforge.jtds.jdbcx.JtdsDataSource")
    } catch {
      case e: Exception  => {
        println("ERROR: Driver not available: " + e.getMessage)
        throw e
      }
    }
  }
  • 斯卡拉版本:2.9.2
  • Java版本:1.6
  • 使用 jtds 1.3.0
  • java -版本的输出:

java 版本“1.6.0_35”Java(TM) SE 运行时环境(构建 1.6.0_35-b10-428-11M3811)Java HotSpot(TM) 64 位服务器 VM(构建 20.10-b01-428,混合模式)

4

2 回答 2

40

是的,根据Java 类文件格式,您的 Java 运行时太旧了:

  • J2SE 7 = 51(0x33 十六进制),
  • J2SE 6.0 = 50(0x32 十六进制),
  • J2SE 5.0 = 49(0x31 十六进制),
  • JDK 1.4 = 48(0x30 十六进制),
  • JDK 1.3 = 47(0x2F 十六进制),
  • JDK 1.2 = 46(0x2E 十六进制),
  • JDK 1.1 = 45(0x2D 十六进制)。

51.0 意味着您需要 Java 7 才能运行项目中的一些类。你是对的,是 jTDS 导致了问题(来自jTDS JDBC Driver 1.2.7 和 1.3.0 发布):

版本 1.3.0 是第一个兼容 Java 7 的驱动程序版本,并且

升级到 Java 7(总是一个好主意)或降级到一些较旧的 jTDS 驱动程序。

于 2012-11-15T18:10:50.807 回答
10

发行说明

如果您需要使用 Java 7 之前的 Java 版本,您应该只使用驱动程序的 jTDS 1.2.x 行。

于 2012-11-15T18:25:35.063 回答