diff --git a/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh b/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh
index 45fba7232a0992..47ca4d91e34b12 100755
--- a/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh
+++ b/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh
@@ -1569,6 +1569,19 @@ function hadoop_finalize_hadoop_opts
hadoop_add_param HADOOP_OPTS hadoop.security.logger "-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER}"
}
+## @description Finish configuring JPMS that enforced for JDK 17 and higher
+## @description prior to executing Java
+## @audience private
+## @stability evolving
+## @replaceable yes
+function hadoop_finalize_jpms_opts
+{
+ hadoop_add_param HADOOP_OPTS IgnoreUnrecognizedVMOptions "-XX:+IgnoreUnrecognizedVMOptions"
+ hadoop_add_param HADOOP_OPTS open.java.util.zip "--add-opens=java.base/java.util.zip=ALL-UNNAMED"
+ hadoop_add_param HADOOP_OPTS open.sun.security.util "--add-opens=java.base/sun.security.util=ALL-UNNAMED"
+ hadoop_add_param HADOOP_OPTS open.sun.security.x509 "--add-opens=java.base/sun.security.x509=ALL-UNNAMED"
+}
+
## @description Finish Java classpath prior to execution
## @audience private
## @stability evolving
@@ -1597,6 +1610,7 @@ function hadoop_finalize
hadoop_finalize_libpaths
hadoop_finalize_hadoop_heap
hadoop_finalize_hadoop_opts
+ hadoop_finalize_jpms_opts
hadoop_translate_cygwin_path HADOOP_HOME
hadoop_translate_cygwin_path HADOOP_CONF_DIR
diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml
index 626fc3733e86c7..a1ff639751884e 100644
--- a/hadoop-project/pom.xml
+++ b/hadoop-project/pom.xml
@@ -167,8 +167,14 @@
[${javac.version},)
[3.3.0,)
+
+ -XX:+IgnoreUnrecognizedVMOptions
+ --add-opens=java.base/java.util.zip=ALL-UNNAMED
+ --add-opens=java.base/sun.security.util=ALL-UNNAMED
+ --add-opens=java.base/sun.security.x509=ALL-UNNAMED
+
- -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError
+ -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError ${extraJavaTestArgs}
3.0.0-M1
${maven-surefire-plugin.version}
${maven-surefire-plugin.version}