[singlejar] Enable native singlejar on Windows

See #2241

Closes #6608.

PiperOrigin-RevId: 220267534
diff --git a/src/BUILD b/src/BUILD
index d69b599..04a814d 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -161,13 +161,12 @@
             ":dummy_darwin_tools",
         ],
     }) + select({
-        # TODO(bazel-team): Once https://github.com/bazelbuild/bazel/issues/2241
-        # is resolved, use cc implementation of singlejar on windows
         "//src/conditions:windows": [
-            "//src/java_tools/singlejar:SingleJar_deploy.jar",
             "//src/tools/launcher:launcher",
             "//third_party/def_parser:def_parser",
         ],
+        "//conditions:default": [],
+    }) + select({
         "//src/conditions:arm": [
             "//src/java_tools/singlejar:SingleJar_deploy.jar",
         ],
diff --git a/src/create_embedded_tools.py b/src/create_embedded_tools.py
index 32f226947..4fd049e 100644
--- a/src/create_embedded_tools.py
+++ b/src/create_embedded_tools.py
@@ -46,6 +46,7 @@
     ('*ExperimentalRunner_deploy.jar',
      lambda x: 'tools/jdk/ExperimentalTestRunner_deploy.jar'),
     ('*Runner_deploy.jar', lambda x: 'tools/jdk/TestRunner_deploy.jar'),
+    ('*singlejar_local.exe', lambda x: 'tools/jdk/singlejar/singlejar.exe'),
     ('*singlejar_local', lambda x: 'tools/jdk/singlejar/singlejar'),
     ('*launcher.exe', lambda x: 'tools/launcher/launcher.exe'),
     ('*def_parser.exe', lambda x: 'tools/def_parser/def_parser.exe'),
diff --git a/src/test/java/com/google/devtools/build/lib/blackbox/bazel/BUILD b/src/test/java/com/google/devtools/build/lib/blackbox/bazel/BUILD
index 9bc0a97..df2ae10 100644
--- a/src/test/java/com/google/devtools/build/lib/blackbox/bazel/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/blackbox/bazel/BUILD
@@ -78,15 +78,11 @@
     data = [
         ":langtools-copy",
         "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:Runner_deploy.jar",
+        "//src/tools/singlejar",
         "//third_party/ijar",
         "//third_party/java/jdk/langtools:test-srcs",
         "@bazel_tools//tools/jdk:current_java_runtime",
-    ] + select({
-        # TODO(bazel-team): Once https://github.com/bazelbuild/bazel/issues/2241
-        # is resolved, use cc implementation of singlejar on windows
-        "//src/conditions:windows": ["//src/java_tools/singlejar:SingleJar_deploy.jar"],
-        "//conditions:default": ["//src/tools/singlejar:singlejar"],
-    }),
+    ],
     visibility = [":tests"],
     deps = [
         ":common_tools_deps",
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index bb4fa95..ae685bd 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -36,18 +36,14 @@
         "//src/test/shell:bin/bazel",
         "//src/test/shell:integration_test_setup.sh",
         "//src/test/shell:testenv.sh",
+        "//src/tools/singlejar",
         "//third_party:srcs",
         "//third_party/ijar",
         "//third_party/java/jdk/langtools:test-srcs",
         "//tools:srcs",
         "@bazel_skylib//:test_deps",
         "@bazel_tools//tools/jdk:current_java_runtime",
-    ] + select({
-        # TODO(bazel-team): Once https://github.com/bazelbuild/bazel/issues/2241
-        # is resolved, use cc implementation of singlejar on windows
-        "//src/conditions:windows": ["//src/java_tools/singlejar:SingleJar_deploy.jar"],
-        "//conditions:default": ["//src/tools/singlejar:singlejar"],
-    }),
+    ],
     visibility = [
         "//src/test/shell:__subpackages__",
         "//src/tools/package_printer/java/com/google/devtools/build/packageprinter:__pkg__",
diff --git a/src/tools/singlejar/BUILD b/src/tools/singlejar/BUILD
index 0c7dc46..c9e6b21 100644
--- a/src/tools/singlejar/BUILD
+++ b/src/tools/singlejar/BUILD
@@ -96,11 +96,6 @@
         ":zip_headers",
         ":zlib_interface",
     ],
-    tags = [
-        # TODO(laszlocsomor) Enable this test when BuildKite uses Bazel that includes
-        # https://github.com/bazelbuild/bazel/commit/914b4ce14624171a97ff8b41f9202058f10d15b2
-        "no_windows",
-    ],
     deps = [
         ":combiners",
         ":desugar_checking",
diff --git a/tools/android/BUILD.tools b/tools/android/BUILD.tools
index 41961f4..427b33e 100644
--- a/tools/android/BUILD.tools
+++ b/tools/android/BUILD.tools
@@ -77,35 +77,6 @@
     visibility = ["//visibility:public"],
 )
 
-java_import(
-    name = "singlejar_deploy",
-    jars = select({
-        "//src/conditions:windows": ["@bazel_tools//tools/jdk:singlejar"],
-        "//conditions:default": [],
-    }),
-    visibility = ["//visibility:private"],
-)
-
-java_binary(
-    name = "singlejar_javabin",
-    main_class = "com.google.devtools.build.singlejar.SingleJar",
-    runtime_deps = select({
-        "//src/conditions:windows": [":singlejar_deploy"],
-        "//conditions:default": [],
-    }),
-    visibility = ["//visibility:private"],
-)
-
-gen_java_lang_extras_jar_cmd = """
-    $(location %s) \
-        --exclude_build_data \
-        --dont_change_compression \
-        --sources  $(location @bazel_tools//tools/jdk:platformclasspath) \
-        --include_prefixes "java/lang/invoke/" \
-        --include_prefixes "java/lang/annotation/" \
-        --output $@
-    """
-
 # javac needs this Jar to compile lambdas, method references, and type annotations.
 # These classes are not part of the android.jar.
 genrule(
@@ -113,15 +84,16 @@
     srcs = [
         "@bazel_tools//tools/jdk:platformclasspath"
     ],
-    tools = select({
-        "//src/conditions:windows": [":singlejar_javabin"],
-        "//conditions:default": ["@bazel_tools//tools/jdk:singlejar"],
-    }),
+    tools = ["@bazel_tools//tools/jdk:singlejar"],
     outs = ["java_lang_extras.jar"],
-    cmd = select({
-        "//src/conditions:windows": gen_java_lang_extras_jar_cmd % ":singlejar_javabin",
-        "//conditions:default": gen_java_lang_extras_jar_cmd % "@bazel_tools//tools/jdk:singlejar",
-    }),
+    cmd = """
+    $(location @bazel_tools//tools/jdk:singlejar) \
+        --exclude_build_data \
+        --dont_change_compression \
+        --sources  $(location @bazel_tools//tools/jdk:platformclasspath) \
+        --include_prefixes "java/lang/invoke/" \
+        --include_prefixes "java/lang/annotation/" \
+        --output $@""",
     visibility = ["//visibility:private"],
 )
 
diff --git a/tools/jdk/BUILD b/tools/jdk/BUILD
index b1a2c21..461ea32 100644
--- a/tools/jdk/BUILD
+++ b/tools/jdk/BUILD
@@ -106,23 +106,11 @@
 filegroup(
     name = "singlejar",
     srcs = select({
-        "//src/conditions:remote": [":singlejar_remote"],
+        "//src/conditions:remote": ["//src/tools/singlejar:singlejar"],
         "//conditions:default": glob(["singlejar/*"]),
     }),
 )
 
-# This is a separate filegroup from :singlejar above since Bazel doesn't
-# support nested selects (we need a logical "remote AND windows" condition).
-filegroup(
-    name = "singlejar_remote",
-    srcs = select({
-        # TODO(jsharpe): Switch to //src/tools/singlejar:singlejar once
-        # native singlejar works on Windows.
-        "//src/conditions:windows": glob(["singlejar/*"]),
-        "//conditions:default": ["//src/tools/singlejar:singlejar"],
-    }),
-)
-
 filegroup(
     name = "genclass",
     srcs = ["//tools/jdk:GenClass_deploy.jar"],