java - 使用 JTDS 和 Scala 时出现不支持的版本错误

标签 java scala jtds spray

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

java.lang.UnsupportedClassVersionError: net/sourceforge/jtds/jdbcx/JtdsDataSource : Unsupported major.minor version 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 class file format,您的 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 and 1.3.0 released):

Version 1.3.0 is the first Java 7 compatible version of the driver and

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

关于java - 使用 JTDS 和 Scala 时出现不支持的版本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13403471/

相关文章:

java - 我可以在已打开的 JTDS 连接上更改 'appName' 吗?

java - SQL Server JDBC 驱动程序比较

java - oss.sonatype.org 的 SBT 解析器无法正常工作

scala - 如何拆分一个大数据帧并使用较小的部分在 Spark 中进行多个广播连接?

java - ubuntu环境下Java连接MS SQL数据库

java - 如何将多个上下文映射到 Jetty 中的同一个 war 文件?

java - 尝试从本地文件而不是网站加载应用程序

java - 如何使 JavaFX ListView 中的前 2 行不可选择

java - 为什么这个泛型引用不能指向Java中这个类似的扩展类?

scala - 推断常见的父类(super class)型