问题描述
使用jool下的seq做批处理时,运行会报错:
org/jooq/lambda/Seq has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
问题排查
英文大致意思为:seq文件编译使用的是java9 但是运行的时候使用的是java8运行
问题解决
方案1
将运行时jdk版本调整为java9
方案2
编译使用java8
其他
本问题是由于引用jool版本过高导致编译和运行java版本不一致产生问题
org.jooq.jool从0.9.13开始,采用java9编译,如果你的运行环境是java8,请使用0.9.12版本 如果运行环境是java8且一定要使用最新的0.9.14版本,请使用jool-java-8 <dependency> <groupId>org.jooq</groupId> <artifactId>jool-java-8</artifactId> <version>0.9.14</version> </dependency>
另附java版本与报错中提到的class file version 的对应关系
49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14
59 = Java 15
60 = Java 16
61 = Java 17
62 = Java 18
63 = Java 19