2012-11-15 2 views
22

Я пытаюсь использовать драйвер Java JTDS для подключения к моей базе данных в Scala. Однако, когда я пытаюсь использовать его, я получаю сообщение об ошибке, что версия (java?) Неверна.Ошибка неподдерживаемой версии с использованием JTDS с Scala

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 -версии:

ява версия "1.6.0_35" Рабочая среда Java (TM) SE (сборка 1.6.0_35-b10-428-11M3811) Java HotSpot (TM) 64-разрядный сервер VM (сборка 20.10-b01-428, смешанный режим)

ответ

40

Да, ваша Java среда слишком стара, согласно Java class file format:

  • J2SE 7 = (0x33 гекс),
  • J2SE 6.0 = 50 (0x32 гекс),
  • J2SE 5.0 = 49 (0x31 гекс),
  • JDK 1.4 = 48 (0x30 гекс),
  • JDK 1.3 = 47 (0x2F он x),
  • JDK 1.2 = 46 (0x2E hex),
  • JDK 1.1 = 45 (0x2D hex).

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.

+1

Scala все еще не 100% совместим с JDK7, так что я буду придерживаться старого драйвера на данный момент. Благодаря! –

10

От release notes:

You should only stick to the jTDS 1.2.x line of the driver if you require to use Java versions prior to Java 7.