diff --git a/docker/ant/files/jdk-22/classpath/build.xml b/docker/ant/files/jdk-22/classpath/build.xml
new file mode 100644
index 00000000..07e58856
--- /dev/null
+++ b/docker/ant/files/jdk-22/classpath/build.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docker/ant/files/jdk-22/modules/build.xml b/docker/ant/files/jdk-22/modules/build.xml
new file mode 100644
index 00000000..e1f93550
--- /dev/null
+++ b/docker/ant/files/jdk-22/modules/build.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docker/maven/files/jdk-22/classpath/pom.xml b/docker/maven/files/jdk-22/classpath/pom.xml
new file mode 100644
index 00000000..316a3b8f
--- /dev/null
+++ b/docker/maven/files/jdk-22/classpath/pom.xml
@@ -0,0 +1,53 @@
+
+ 4.0.0
+
+ com.example
+ lombok-jdk-${env.JDK_VERSION}
+ 1.0-SNAPSHOT
+
+
+ UTF-8
+ 22
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.11.0
+
+ ${java.version}
+ ${java.version}
+ true
+ true
+ true
+
+ -Werror
+ -Xlint:all
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+
+
+
+
+
+
+
+
+ org.projectlombok
+ lombok
+ 1.2.3
+ system
+ /workspace/lombok.jar
+
+
+
+
\ No newline at end of file
diff --git a/docker/maven/files/jdk-22/modules/pom.xml b/docker/maven/files/jdk-22/modules/pom.xml
new file mode 100644
index 00000000..95c3a86e
--- /dev/null
+++ b/docker/maven/files/jdk-22/modules/pom.xml
@@ -0,0 +1,60 @@
+
+ 4.0.0
+
+ com.example
+ lombok-jdk-${env.JDK_VERSION}
+ 1.0-SNAPSHOT
+
+
+ UTF-8
+ 22
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.11.0
+
+ ${java.version}
+ ${java.version}
+ true
+ true
+ true
+
+ -Werror
+ -Xlint:all
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.28
+
+
+
+
+
+
+
+
+
+ org.projectlombok
+ lombok
+ 1.2.3
+ system
+ /workspace/modules/lombok.jar
+
+
+
+
\ No newline at end of file
diff --git a/docker/provision/jdk/java-22.sh b/docker/provision/jdk/java-22.sh
new file mode 100644
index 00000000..08d8c00a
--- /dev/null
+++ b/docker/provision/jdk/java-22.sh
@@ -0,0 +1,4 @@
+apt-get update && apt-get install -y wget
+wget https://download.java.net/java/early_access/jdk22/15/GPL/openjdk-22-ea+15_linux-x64_bin.tar.gz -O jdk.tar.gz
+tar -xzf jdk.tar.gz -C /opt/
+mv /opt/jdk-22 /opt/jdk
\ No newline at end of file
diff --git a/docker/readme.md b/docker/readme.md
index b36cd85b..deb482f5 100644
--- a/docker/readme.md
+++ b/docker/readme.md
@@ -13,6 +13,7 @@ By default, this is the latest released version. You can download a specific ver
### `ARG jdk=21`
The jdk version to be used. Supported values:
+- `22`(experimental, based on openjdk early access)
- `21` (default)(based on openjdk instead of adoptium)
- `17`
- `11`