Ошибка неподдерживаемой версии с использованием JTDS с Scala
Я пытаюсь использовать драйвер 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 version "1.6.0_35"
Java (TM) SE Runtime Environment (сборка 1.6.0_35-b10-428-11M3811)
Java HotSpot (TM) 64-разрядная серверная VM (сборка 20.10-b01-428, смешанный режим)
Ответы
Ответ 1
Да, ваша среда исполнения 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 JDBC Driver 1.2.7 и 1.3.0 выпущено):
Версия 1.3.0 - первая версия драйвера, совместимая с Java 7, и
Либо обновление до Java 7 (всегда хорошая идея), либо переход к более раннему драйверу jTDS.
Ответ 2
Из примечаний к выпуску:
Вы должны придерживаться только строки jTDS 1.2.x драйвера, если вам нужно использовать Java версии до Java 7.