diff --git a/build.gradle b/build.gradle
index 323256b..3e3b396 100644
--- a/build.gradle
+++ b/build.gradle
@@ -566,7 +566,9 @@
         if (OperatingSystem.current().isLinux()) {
             options.forkOptions.javaHome = file(jdkDir + 'linux')
         } else if (OperatingSystem.current().isMacOsX()) {
-            options.forkOptions.javaHome = file(jdkDir + 'osx')
+            options.forkOptions.javaHome = compatibility > JavaVersion.VERSION_1_9
+                    ? file(jdkDir + 'osx/Contents/Home')
+                    : file(jdkDir + 'osx')
         } else {
             options.forkOptions.javaHome = file(jdkDir + 'windows')
         }
diff --git a/src/test/java/com/android/tools/r8/TestRuntime.java b/src/test/java/com/android/tools/r8/TestRuntime.java
index 04b61c0..20bf4b8 100644
--- a/src/test/java/com/android/tools/r8/TestRuntime.java
+++ b/src/test/java/com/android/tools/r8/TestRuntime.java
@@ -83,11 +83,13 @@
     return new CfRuntime(CfVm.JDK8, home);
   }
 
-  private static Path getCheckedInJdkHome(Path path) {
+  private static Path getCheckedInJdkHome(Path path, CfVm vm) {
     if (ToolHelper.isLinux()) {
       return path.resolve("linux");
     } else if (ToolHelper.isMac()) {
-      return path.resolve("osx");
+      return vm.lessThanOrEqual(CfVm.JDK9)
+          ? path.resolve("osx")
+          : path.resolve("osx/Contents/Home");
     } else {
       assert ToolHelper.isWindows();
       return path.resolve("windows");
@@ -95,16 +97,16 @@
   }
 
   public static CfRuntime getCheckedInJdk9() {
-    return new CfRuntime(CfVm.JDK9, getCheckedInJdkHome(JDK9_PATH));
+    return new CfRuntime(CfVm.JDK9, getCheckedInJdkHome(JDK9_PATH, CfVm.JDK9));
   }
 
   public static CfRuntime getCheckedInJdk11() {
-    return new CfRuntime(CfVm.JDK11, getCheckedInJdkHome(JDK11_PATH));
+    return new CfRuntime(CfVm.JDK11, getCheckedInJdkHome(JDK11_PATH, CfVm.JDK11));
   }
 
   // TODO(b/169692487): Add this to 'getCheckedInCfRuntimes' when we start having support for JDK15.
   public static CfRuntime getCheckedInJdk15() {
-    return new CfRuntime(CfVm.JDK15, getCheckedInJdkHome(JDK15_PATH));
+    return new CfRuntime(CfVm.JDK15, getCheckedInJdkHome(JDK15_PATH, CfVm.JDK15));
   }
 
   public static List<CfRuntime> getCheckedInCfRuntimes() {
