Set `java` on remote JDKs

If the `java` attribute on `java_runtime` isn't set, Bazel guesses it
based on the host platform, which can be different from the execution
platform.

https://github.com/bazelbuild/bazel/blob/04a05677e4714434ec196c45a4ccbd8e0ef2f0ff/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java#L46

Work towards https://github.com/bazelbuild/bazel/issues/19587
diff --git a/toolchains/jdk_build_file.bzl b/toolchains/jdk_build_file.bzl
index 71b615a..00b774c 100644
--- a/toolchains/jdk_build_file.bzl
+++ b/toolchains/jdk_build_file.bzl
@@ -83,6 +83,13 @@
         ":jdk-lib",
         ":jre",
     ],
+    # Provide the 'java` binary explicitly so that the correct path is used by
+    # Bazel even when the host platform differs from the execution platform.
+    # Exactly one of the two globs will be empty depending on the host platform.
+    # When --incompatible_disallow_empty_glob is enabled, each individual empty
+    # glob will fail without allow_empty = True, even if the overall result is
+    # non-empty.
+    java = glob(["bin/java.exe", "bin/java"], allow_empty = True)[0],
     version = {RUNTIME_VERSION},
 )
 """