fix bazel_with_jdk_test to properly depend on JAVABASE

Progress towards #8033

Closes #8042.

PiperOrigin-RevId: 243606106
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index 2ece60f..de4d628 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -641,12 +641,14 @@
     name = "bazel_with_jdk_test",
     size = "medium",
     srcs = ["bazel_with_jdk_test.sh"],
+    args = ["$(JAVABASE)"],
     data = [
         ":test-deps",
         "//src:bazel",
         "@bazel_tools//tools/bash/runfiles",
     ],
     tags = ["no_windows"],
+    toolchains = ["@bazel_tools//tools/jdk:current_java_runtime"],
 )
 
 sh_test(
diff --git a/src/test/shell/bazel/bazel_with_jdk_test.sh b/src/test/shell/bazel/bazel_with_jdk_test.sh
index 7fc5643..006a09b 100755
--- a/src/test/shell/bazel/bazel_with_jdk_test.sh
+++ b/src/test/shell/bazel/bazel_with_jdk_test.sh
@@ -64,6 +64,19 @@
   export MSYS2_ARG_CONV_EXCL="*"
 fi
 
+if "$is_windows"; then
+  EXE_EXT=".exe"
+else
+  EXE_EXT=""
+fi
+
+javabase="$1"
+if [[ $javabase = external/* ]]; then
+  javabase=${javabase#external/}
+fi
+javabase="$(rlocation "${javabase}/bin/java${EXE_EXT}")"
+javabase=${javabase%/bin/java${EXE_EXT}}
+
 function bazel() {
   $(rlocation io_bazel/src/bazel) --bazelrc=$TEST_TMPDIR/bazelrc "$@"
   return $?
@@ -82,7 +95,7 @@
   fgrep -v -- "--host_javabase" "$TEST_TMPDIR/bazelrc" > "$TEST_TMPDIR/bazelrc.new"
   mv "$TEST_TMPDIR/bazelrc.new" "$TEST_TMPDIR/bazelrc"
   # ... but ensure JAVA_HOME is set, so we can find a default --javabase
-  export JAVA_HOME="${bazel_javabase}"
+  export JAVA_HOME="${javabase}"
 }
 
 function test_bazel_uses_bundled_jdk() {