【问题标题】:Unsupported version error using JTDS with Scala使用 JTDS 和 Scala 时出现不支持的版本错误
【发布时间】:2012-11-04 09:41:50
【问题描述】:

我正在尝试使用 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
      }
    }
  }
  • Scala 版本:2.9.2
  • Java 版本:1.6
  • 使用 jtds 1.3.0
  • java -version 的输出:

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

【问题讨论】:

    标签: java scala jtds spray


    【解决方案1】:

    是的,你的 Java 运行时太旧了,根据Java class file format:

    • 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 and 1.3.0 released):

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

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

    【讨论】:

    • Scala 仍然不是 100% 与 JDK7 兼容,所以我现在将坚持使用旧驱动程序。谢谢!
    【解决方案2】:

    来自release notes:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 2012-09-02
      • 2022-10-17
      • 2020-11-07
      相关资源
      最近更新 更多