For reasons described e.g. in this comment, for AspectJ users it has become a little challenging to find out which minimum AspectJ version is required in order to process byte code or compile source code using features of a certain Java language version. Since Java 10, this cannot be easily concluded from the AspectJ version number anymore, and we are sorry for that. So here is a little overview:
AspectJ version | Java version | Comments |
---|---|---|
1.9.22 - 1.9.22.1 |
22 |
|
1.9.21 - 1.9.21.2 |
21 |
AspectJ compiler requires JDK 17+ during build time. During runtime, AspectJ still only requires Java 8+ for both compile-time and load-time weaving. Pure Java code can be compiled down to as old as 1.3 byte code level. |
1.9.20 - 1.9.20.1 |
20 |
|
1.9.19 |
19 |
|
1.9.9 - 1.9.9.1 |
18 |
|
1.9.8 |
17 |
AspectJ compiler requires JDK 11+ during build time. During runtime, AspectJ still only requires Java 8+ for both compile-time and load-time weaving. Pure Java code can be compiled down to as old as 1.3 byte code level. |
1.9.7 |
15, 16 |
|
1.9.6 |
14 |
|
1.9.5 |
13 |
|
1.9.3 - 1.9.4 |
12 |
|
1.9.2 |
11 |
|
1.9.1 |
10 |
|
1.9.0 |
9 |
|
1.8.0 - 1.8.14 |
8 |
|
1.7.0 - 1.7.4 |
7 |
|
1.6.0 - 1.6.12 |
6 |
|
1.5.0 - 1.5.4 |
5 |
Older versions omitted.
FYI, here is a brief overview of Java language changes since Java 9. They basically correspond to the new Java language features supported by AspectJ versions for the respective Java versions.