编译文件时,有时遇到类似 【class file has wrong version 55.0, should be 52.0】 这样的错误。
这是因为JDK的版本,与字节码的版本不一致。比如用JDK11编译的jar包,但是其他项目引用的时候,编译环境为JDK8,则会爆出类似上面的错误。
JDK版本与字节码版本对应关系如下:
JDK Version | Bytecode Version |
---|---|
Java 1.0 | 45.0 |
Java 1.1 | 45.3 |
Java 1.2 | 46.0 |
Java 1.3 | 47.0 |
Java 1.4 | 48.0 |
Java 5 | 49.0 |
Java 6 | 50.0 |
Java 7 | 51.0 |
Java 8 | 52.0 |
Java 9 | 53.0 |
Java 10 | 54.0 |
Java 11 | 55.0 |
Java 12 | 56.0 |
Java 13 | 57.0 |
Java 14 | 58.0 |
Java 15 | 59.0 |
Java 16 | 60.0 |
Java 17 | 61.0 |
Java 18 | 62.0 |
Java 19 | 63.0 |
Java 20 | 64.0 |
Java 21 | 65.0 |