2012-11-15 32 views
22

Tôi đang cố gắng sử dụng trình điều khiển Java JTDS để kết nối với cơ sở dữ liệu của tôi trong Scala. Tuy nhiên, bất cứ khi nào tôi cố gắng sử dụng nó tôi nhận được một lỗi rằng phiên bản (của java?) Là sai.Lỗi phiên bản không được hỗ trợ bằng cách sử dụng JTDS với 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 phiên bản: 2.9.2
  • Version Java: 1.6
  • Sử dụng jtds 1.3.0
  • Sản lượng java -version: phiên bản

java "1.6.0_35" Môi trường chạy thử Java (TM) SE (xây dựng 1.6.0_35-b10-428-11M3811) Java HotSpot (TM) 64-Bit Server VM (xây dựng 20,10-b01-428, chế độ hỗn hợp)

Trả lời

40

Vâng, thời gian chạy Java của bạn quá cũ, theo Java class file format:

  • J2SE 7 = (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 anh ấy x),
  • JDK 1.2 = 46 (0x2E hex),
  • JDK 1.1 = 45 (0x2D hex).

51.0 có nghĩa là bạn cần Java 7 để chạy một số lớp trong dự án của bạn. Và bạn là đúng đó là jTDS đó là gây ra vấn đề (từ 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

Hoặc nâng cấp lên Java 7 (luôn luôn là một ý tưởng tốt) hoặc hạ cấp xuống một số tài xế jTDS cũ.

+1

Scala vẫn không phải là 100% tương thích với JDK7, vì vậy tôi sẽ dính vào người lái xe cũ cho bây giờ. Cảm ơn! –

10

Từ 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.

Các vấn đề liên quan