Make C++ toolchain explicitly not mandatory

Fixes: https://github.com/bazelbuild/rules_java/issues/305
PiperOrigin-RevId: 775703888
Change-Id: I709ccc8f29a09470aa3c4653ce9e1c413fafbbe4
diff --git a/java/bazel/rules/bazel_java_binary.bzl b/java/bazel/rules/bazel_java_binary.bzl
index cbbe0de..da54722 100644
--- a/java/bazel/rules/bazel_java_binary.bzl
+++ b/java/bazel/rules/bazel_java_binary.bzl
@@ -317,7 +317,7 @@
         test = test,
         fragments = ["cpp", "java"],
         provides = [JavaInfo],
-        toolchains = [semantics.JAVA_TOOLCHAIN] + use_cc_toolchain() + (
+        toolchains = [semantics.JAVA_TOOLCHAIN] + use_cc_toolchain(mandatory = False) + (
             [semantics.JAVA_RUNTIME_TOOLCHAIN] if executable or test else []
         ) + (
             [_LAUNCHER_MAKER_TOOLCHAIN] if bazel_features.rules._has_launcher_maker_toolchain else []
@@ -331,7 +331,7 @@
             "unstrippeddeployjar": "%{name}_deploy.jar.unstripped",
         },
         exec_groups = {
-            "cpp_link": exec_group(toolchains = use_cc_toolchain()),
+            "cpp_link": exec_group(toolchains = use_cc_toolchain(mandatory = False)),
         },
         subrules = [android_lint_subrule],
     )