diff --git a/java/builder.go b/java/builder.go
index 4bdea28..ff5de09 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -375,8 +375,11 @@
 type classpath []android.Path
 
 func (x *classpath) FormJavaClassPath(optName string) string {
+	if optName != "" && !strings.HasSuffix(optName, "=") && !strings.HasSuffix(optName, " ") {
+		optName += " "
+	}
 	if len(*x) > 0 {
-		return optName + " " + strings.Join(x.Strings(), ":")
+		return optName + strings.Join(x.Strings(), ":")
 	} else {
 		return ""
 	}
diff --git a/java/java.go b/java/java.go
index 43af2c6..c9759d7 100644
--- a/java/java.go
+++ b/java/java.go
@@ -135,6 +135,15 @@
 		Javacflags []string
 	}
 
+	// When compiling language level 9+ .java code in packages that are part of
+	// a system module, patch_module names the module that your sources and
+	// dependencies should be patched into. The Android runtime currently
+	// doesn't implement the JEP 261 module system so this option is only
+	// supported at compile time. It should only be needed to compile tests in
+	// packages that exist in libcore and which are inconvenient to move
+	// elsewhere.
+	Patch_module *string
+
 	Jacoco struct {
 		// List of classes to include for instrumentation with jacoco to collect coverage
 		// information at runtime when building with coverage enabled.  If unset defaults to all
@@ -899,11 +908,6 @@
 		// disk and memory usage.
 		javacFlags = append(javacFlags, "-g:source,lines")
 	}
-	if len(javacFlags) > 0 {
-		// optimization.
-		ctx.Variable(pctx, "javacFlags", strings.Join(javacFlags, " "))
-		flags.javacFlags = "$javacFlags"
-	}
 
 	if ctx.Config().RunErrorProne() {
 		if config.ErrorProneClasspath == nil {
@@ -955,6 +959,11 @@
 		}
 	}
 
+	if j.properties.Patch_module != nil && ctx.Config().TargetOpenJDK9() {
+		patchClasspath := ".:" + flags.classpath.FormJavaClassPath("")
+		javacFlags = append(javacFlags, "--patch-module="+String(j.properties.Patch_module)+"="+patchClasspath)
+	}
+
 	// systemModules
 	if deps.systemModules != nil {
 		flags.systemModules = append(flags.systemModules, deps.systemModules)
@@ -968,6 +977,12 @@
 		flags.aidlFlags = "$aidlFlags"
 	}
 
+	if len(javacFlags) > 0 {
+		// optimization.
+		ctx.Variable(pctx, "javacFlags", strings.Join(javacFlags, " "))
+		flags.javacFlags = "$javacFlags"
+	}
+
 	return flags
 }
 
