diff --git a/src/BUILD b/src/BUILD
index 2b9f3cc..204dc18 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -567,15 +567,17 @@
     "//conditions:default": [],
 })
 
-JAVA_VERSIONS = ("11",)
+JAVA_VERSIONS = ("11", "14")
+
+# TODO(davido): Hard code the javac 11 for now; it is required for default toolchain.
 
 [
     genrule(
         name = "jars_java_tools_java" + java_version + "_zip",
         srcs = JAVA_TOOLS_DEPLOY_JARS + [
-            "@java_tools_langtools_javac" + java_version + "//:jdk_compiler_jar",
-            "@java_tools_langtools_javac" + java_version + "//:java_compiler_jar",
-            "@java_tools_langtools_javac" + java_version + "//:javac_jar",
+            "@java_tools_langtools_javac11//:jdk_compiler_jar",
+            "@java_tools_langtools_javac11//:java_compiler_jar",
+            "@java_tools_langtools_javac11//:javac_jar",
         ],
         outs = ["jars_java_tools_java" + java_version + ".zip"],
         cmd = "zip -qjX $@ $$(echo $(SRCS) | sort)",
@@ -598,7 +600,7 @@
             "//third_party/ijar:transitive_sources",
             "//third_party/java/jacoco:transitive_sources",
             "//third_party/java/proguard:srcs",
-            "@java_tools_langtools_javac" + java_version + "//:srcs",
+            "@java_tools_langtools_javac11//:srcs",
         ],
         outs = ["java_tools_dist_javac" + java_version + ".zip"],
         cmd = "zip -qXr $@ $$(echo $(SRCS) | sort)",
@@ -638,8 +640,10 @@
 [
     # The java_tools releases can have BUILD files that vary depending on the
     # javac version they embed. Currently the only difference is in the
-    # java_toolchain source version which has to be 12 for javac 12 to be able
-    # to build new Java 12 features.
+    # java_toolchain source version which has to be 14 for javac 14 to be able
+    # to build new Java 14 features. This is not used atm, as the toolchain for
+    # javac 14 was duplicated, but it might be used in future Bazel releases to
+    # support new javac release, so that we preserve this step for now.
     genrule(
         name = "create_java_tools_build_java" + java_version,
         srcs = ["//tools/jdk:BUILD.java_tools"],
@@ -744,6 +748,9 @@
         "@openjdk11_darwin_archive//:WORKSPACE",
         "@openjdk11_linux_archive//:WORKSPACE",
         "@openjdk11_windows_archive//:WORKSPACE",
+        "@openjdk14_darwin_archive//:WORKSPACE",
+        "@openjdk14_linux_archive//:WORKSPACE",
+        "@openjdk14_windows_archive//:WORKSPACE",
         "@openjdk_linux_aarch64_minimal//file",
         "@openjdk_linux_minimal//file",
         "@openjdk_macos_minimal//file",
@@ -760,6 +767,9 @@
         "@remotejdk11_linux_ppc64le_for_testing//:WORKSPACE",
         "@remotejdk11_macos_for_testing//:WORKSPACE",
         "@remotejdk11_win_for_testing//:WORKSPACE",
+        "@remotejdk14_linux_for_testing//:WORKSPACE",
+        "@remotejdk14_macos_for_testing//:WORKSPACE",
+        "@remotejdk14_win_for_testing//:WORKSPACE",
         "@rules_cc//:WORKSPACE",
         "@rules_java//:WORKSPACE",
         "@rules_pkg//:WORKSPACE",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE
index 91823eb..c62cf98 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE
@@ -157,6 +157,38 @@
 # This must be kept in sync with the top-level WORKSPACE file.
 maybe(
     http_archive,
+    name = "remotejdk14_linux",
+    build_file = "@local_jdk//:BUILD.bazel",
+    sha256 = "48bb8947034cd079ad1ef83335e7634db4b12a26743a0dc314b6b861480777aa",
+    strip_prefix = "zulu14.28.21-ca-jdk14.0.1-linux_x64",
+    urls = [
+        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz",
+    ],
+)
+
+# This must be kept in sync with the top-level WORKSPACE file.
+maybe(
+    http_archive,
+    name = "remotejdk14_macos",
+    build_file = "@local_jdk//:BUILD.bazel",
+    sha256 = "088bd4d0890acc9f032b738283bf0f26b2a55c50b02d1c8a12c451d8ddf080dd",
+    strip_prefix = "zulu14.28.21-ca-jdk14.0.1-macosx_x64",
+    urls = ["https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-macosx_x64.tar.gz"],
+)
+
+# This must be kept in sync with the top-level WORKSPACE file.
+maybe(
+    http_archive,
+    name = "remotejdk14_win",
+    build_file = "@local_jdk//:BUILD.bazel",
+    sha256 = "9cb078b5026a900d61239c866161f0d9558ec759aa15c5b4c7e905370e868284",
+    strip_prefix = "zulu14.28.21-ca-jdk14.0.1-win_x64",
+    urls = ["https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"],
+)
+
+# This must be kept in sync with the top-level WORKSPACE file.
+maybe(
+    http_archive,
     name = "remote_java_tools_linux",
     sha256 = "0be37f4227590ecb6bc929a6a7e427c65e6239363e4c3b28b1a211718b9636c9",
     urls = [
diff --git a/src/test/py/bazel/test_base.py b/src/test/py/bazel/test_base.py
index 1909afe..baf7303 100644
--- a/src/test/py/bazel/test_base.py
+++ b/src/test/py/bazel/test_base.py
@@ -61,6 +61,9 @@
       'remotejdk11_linux_ppc64le_for_testing',
       'remotejdk11_macos_for_testing',
       'remotejdk11_win_for_testing',
+      'remotejdk14_linux_for_testing',
+      'remotejdk14_macos_for_testing',
+      'remotejdk14_win_for_testing',
       'remote_java_tools_darwin_for_testing',
       'remote_java_tools_linux_for_testing',
       'remote_java_tools_windows_for_testing',
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index 26feef3..e81f8ba 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -179,6 +179,30 @@
 )
 
 sh_test(
+    name = "bazel_java14_test",
+    srcs = ["bazel_java14_test.sh"],
+    args = [
+        # --java_toolchain and --host_java_toolchain values
+        "@local_java_tools//:toolchain_jdk_14",
+        # java_tools zip to test
+        "src/java_tools_java14.zip",
+    ] + select({
+        # --javabase and --host_javabase values
+        "//src/conditions:darwin": ["@openjdk14_darwin_archive//:runtime"],
+        "//src/conditions:darwin_x86_64": ["@openjdk14_darwin_archive//:runtime"],
+        "//src/conditions:windows": ["@openjdk14_windows_archive//:runtime"],
+        "//src/conditions:linux_x86_64": ["@openjdk14_linux_archive//:runtime"],
+    }),
+    data = [
+        ":test-deps",
+        "//src:java_tools_java14_zip",
+        "//src/test/shell/bazel/testdata:jdk_http_archives_filegroup",
+        "@bazel_tools//tools/bash/runfiles",
+    ],
+    tags = ["local"],
+)
+
+sh_test(
     name = "bazel_java_test",
     # TODO(iirina): Investigate if the 'large' and 'eternal' values still apply.
     size = "large",
@@ -196,7 +220,10 @@
     exec_compatible_with = ["//:highcpu_machine"],
 )
 
-JAVA_VERSIONS = ("11",)
+JAVA_VERSIONS = ("11", "14")
+
+# TODO(davido): Remove this once remote_java_tools_javac14 is released
+JAVA_TOOLS_VERSIONS = ("11",)
 
 [
     sh_test(
@@ -467,7 +494,7 @@
             "no_windows",
         ],
     )
-    for java_version in JAVA_VERSIONS
+    for java_version in JAVA_TOOLS_VERSIONS
 ]
 
 # Test java coverage with the java_toolchain in the java_tools zip built at head.
diff --git a/src/test/shell/bazel/bazel_java14_test.sh b/src/test/shell/bazel/bazel_java14_test.sh
new file mode 100755
index 0000000..ed82037
--- /dev/null
+++ b/src/test/shell/bazel/bazel_java14_test.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+#
+# Copyright 2020 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Tests that bazel runs projects with Java 14 features.
+
+# --- begin runfiles.bash initialization ---
+if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then
+    if [[ -f "$0.runfiles_manifest" ]]; then
+      export RUNFILES_MANIFEST_FILE="$0.runfiles_manifest"
+    elif [[ -f "$0.runfiles/MANIFEST" ]]; then
+      export RUNFILES_MANIFEST_FILE="$0.runfiles/MANIFEST"
+    elif [[ -f "$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then
+      export RUNFILES_DIR="$0.runfiles"
+    fi
+fi
+if [[ -f "${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then
+  source "${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash"
+elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then
+  source "$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \
+            "$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)"
+else
+  echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash"
+  exit 1
+fi
+# --- end runfiles.bash initialization ---
+
+source "$(rlocation "io_bazel/src/test/shell/integration_test_setup.sh")" \
+  || { echo "integration_test_setup.sh not found!" >&2; exit 1; }
+
+case "$(uname -s | tr [:upper:] [:lower:])" in
+msys*|mingw*|cygwin*)
+  declare -r is_windows=true
+  ;;
+*)
+  declare -r is_windows=false
+  ;;
+esac
+
+if "$is_windows"; then
+  export MSYS_NO_PATHCONV=1
+  export MSYS2_ARG_CONV_EXCL="*"
+fi
+
+JAVA_TOOLCHAIN="$1"; shift
+JAVA_TOOLS_ZIP="$1"; shift
+JAVA_RUNTIME="$1"; shift
+
+echo "JAVA_TOOLS_ZIP=$JAVA_TOOLS_ZIP"
+
+
+JAVA_TOOLS_RLOCATION=$(rlocation io_bazel/$JAVA_TOOLS_ZIP)
+
+if "$is_windows"; then
+    JAVA_TOOLS_ZIP_FILE_URL="file:///${JAVA_TOOLS_RLOCATION}"
+else
+    JAVA_TOOLS_ZIP_FILE_URL="file://${JAVA_TOOLS_RLOCATION}"
+fi
+JAVA_TOOLS_ZIP_FILE_URL=${JAVA_TOOLS_ZIP_FILE_URL:-}
+
+add_to_bazelrc "build --java_toolchain=${JAVA_TOOLCHAIN}"
+add_to_bazelrc "build --host_java_toolchain=${JAVA_TOOLCHAIN}"
+add_to_bazelrc "build --javabase=${JAVA_RUNTIME}"
+add_to_bazelrc "build --host_javabase=${JAVA_RUNTIME}"
+
+function set_up() {
+    cat >>WORKSPACE <<EOF
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+# java_tools versions only used to test Bazel with various JDK toolchains.
+
+http_archive(
+    name = "local_java_tools",
+    urls = ["${JAVA_TOOLS_ZIP_FILE_URL}"]
+)
+EOF
+    cat $(rlocation io_bazel/src/test/shell/bazel/testdata/jdk_http_archives) >> WORKSPACE
+}
+
+function test_java14_record_type() {
+  mkdir -p java/main
+  cat >java/main/BUILD <<EOF
+java_binary(
+    name = 'Javac14Example',
+    srcs = ['Javac14Example.java'],
+    main_class = 'Javac14Example',
+    javacopts = ["--enable-preview"],
+    jvm_flags = ["--enable-preview"],
+)
+EOF
+
+  cat >java/main/Javac14Example.java <<EOF
+public class Javac14Example {
+  record Point(int x, int y) {}
+  public static void main(String[] args) {
+    Point point = new Point(0, 1);
+    System.out.println(point.x);
+  }
+}
+EOF
+  bazel run java/main:Javac14Example --test_output=all --verbose_failures &>"${TEST_log}"
+  expect_log "0"
+}
+
+run_suite "Tests new Java 14 language features"
diff --git a/src/test/shell/bazel/testdata/jdk_http_archives b/src/test/shell/bazel/testdata/jdk_http_archives
index 4a24878..1618193 100644
--- a/src/test/shell/bazel/testdata/jdk_http_archives
+++ b/src/test/shell/bazel/testdata/jdk_http_archives
@@ -49,3 +49,29 @@
     strip_prefix = "zulu11.37.17-ca-jdk11.0.6-win_x64",
     urls = ["https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"],
 )
+
+#################################### JDK 14 ####################################
+# This must be kept in sync with the top-level WORKSPACE file.
+http_archive(
+    name = "openjdk14_linux_archive",
+    build_file_content = "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
+    sha256 = "48bb8947034cd079ad1ef83335e7634db4b12a26743a0dc314b6b861480777aa",
+    strip_prefix = "zulu14.28.21-ca-jdk14.0.1-linux_x64",
+    urls = ["https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz"],
+)
+# This must be kept in sync with the top-level WORKSPACE file.
+http_archive(
+    name = "openjdk14_darwin_archive",
+    build_file_content = "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
+    sha256 = "088bd4d0890acc9f032b738283bf0f26b2a55c50b02d1c8a12c451d8ddf080dd",
+    strip_prefix = "zulu14.28.21-ca-jdk14.0.1-macosx_x64",
+    urls = ["https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-macosx_x64.tar.gz"],
+)
+# This must be kept in sync with the top-level WORKSPACE file.
+http_archive(
+    name = "openjdk14_windows_archive",
+    build_file_content = "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
+    sha256 = "9cb078b5026a900d61239c866161f0d9558ec759aa15c5b4c7e905370e868284",
+    strip_prefix = "zulu14.28.21-ca-jdk14.0.1-win_x64",
+    urls = ["https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"],
+)
diff --git a/src/test/shell/testenv.sh b/src/test/shell/testenv.sh
index 248baf5..a1cbb9d 100755
--- a/src/test/shell/testenv.sh
+++ b/src/test/shell/testenv.sh
@@ -280,6 +280,9 @@
         "openjdk11_darwin_archive"
         "openjdk11_linux_archive"
         "openjdk11_windows_archive"
+        "openjdk14_darwin_archive"
+        "openjdk14_linux_archive"
+        "openjdk14_windows_archive"
         "openjdk_linux_aarch64_minimal"
         "openjdk_linux_minimal"
         "openjdk_macos_minimal"
@@ -296,6 +299,9 @@
         "remotejdk11_linux_ppc64le_for_testing"
         "remotejdk11_macos_for_testing"
         "remotejdk11_win_for_testing"
+        "remotejdk14_linux_for_testing"
+        "remotejdk14_macos_for_testing"
+        "remotejdk14_win_for_testing"
         "rules_cc"
         "rules_java"
         "rules_pkg"
diff --git a/src/upload_all_java_tools.sh b/src/upload_all_java_tools.sh
index e96fd01..3c79696 100755
--- a/src/upload_all_java_tools.sh
+++ b/src/upload_all_java_tools.sh
@@ -48,7 +48,7 @@
 
 # Passing the same commit_hash and timestamp to all targets to mark all the artifacts
 # uploaded on GCS with the same identifier.
-for java_version in 11; do
+for java_version in 11 14; do
 
     bazel build //src:java_tools_java${java_version}_zip
     zip_path=${PWD}/bazel-bin/src/java_tools_java${java_version}.zip
