22

JavaJTDSドライバーを使用して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
  • jtds1.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 hex)、
  • J2SE 6.0 = 50 (0x32 hex)、
  • J2SE 5.0 = 49 (0x31 hex)、
  • JDK 1.4 = 48 (0x30 hex)、
  • JDK 1.3 = 47 (0x2F hex)、
  • JDK 1.2 = 46 (0x2E hex)、
  • JDK 1.1 = 45 (0x2D hex)。

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 に答える