java.lang.UnsupportedClassVersionError(SQLServerDriver)
242日目
SQL ServerをJavaで扱うテストをしてて以下のエラーに遭遇した。
$ gradle run > Task :run FAILED Exception in thread "main" java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at info.tsaeki.App.main(App.java:27)
Javaのバージョンの何かがおかしいのはわかったけど、解決方法が全然わからない・・。
途方も暮れたところでパッと閃いて解決しました。とても些細な間違いをしていた・・。
Java8用のパッケージ使わないとだよね・・・
implementation 'com.microsoft.sqlserver:mssql-jdbc:7.4.1.jre12' # NG implementation 'com.microsoft.sqlserver:mssql-jdbc:7.4.1.jre8' # OK
2時間くらいは悩んだ