java scala jtds spray

java - Error de versión no compatible al usar JTDS con Scala



spray (2)

De las notas de publicación :

Solo debe atenerse a la línea jTDS 1.2.x del controlador si necesita usar versiones de Java anteriores a Java 7.

Estoy intentando usar el controlador Java JTDS para conectarme a mi base de datos en Scala. Sin embargo, siempre que trato de usarlo, aparece un error que dice que la versión (¿de java?) Es incorrecta.

java.lang.UnsupportedClassVersionError: net / sourceforge / jtds / jdbcx / JtdsDataSource: Major.minor no admitido versión 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 } } }

  • Versión Scala: 2.9.2
  • Versión de Java: 1.6
  • Usando jtds 1.3.0
  • Salida de java -version:

Java versión "1.6.0_35" Java (TM) SE Runtime Environment (compilación 1.6.0_35-b10-428-11M3811) Java HotSpot (TM) VM de 64 bits (compilación 20.10-b01-428, modo mixto)


Sí, su tiempo de ejecución de Java es demasiado antiguo, según el formato de archivo de clase 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 (hexadecimal 0x2F),
  • JDK 1.2 = 46 (0x2E hex),
  • JDK 1.1 = 45 (hexadecimal 0x2D).

51.0 significa que necesita Java 7 para ejecutar algunas de las clases en su proyecto. Y tiene razón, es jTDS lo que está causando el problema (de los controladores JTBC 1.2.7 y 1.3.0 de jTDS publicados ):

La versión 1.3.0 es la primera versión compatible con Java 7 del controlador y

Actualice a Java 7 (siempre es una buena idea) o cambie a un controlador jTDS anterior.