diff --git a/test/java/common/rules/common_launcher_java_binary_tests.bzl b/test/java/common/rules/common_launcher_java_binary_tests.bzl
index 122d26c..c0fd946 100644
--- a/test/java/common/rules/common_launcher_java_binary_tests.bzl
+++ b/test/java/common/rules/common_launcher_java_binary_tests.bzl
@@ -5,6 +5,7 @@
 load("//java:java_binary.bzl", "java_binary")
 load("//java:java_library.bzl", "java_library")
 load("//test/java/testutil:artifact_closure.bzl", "artifact_closure")
+load("//test/java/testutil:binary_executable_subject.bzl", "expect_that_executable")
 load("//test/java/testutil:mock_java_toolchain.bzl", "mock_java_toolchain")
 
 def _test_java_binary_non_executable_rule_outputs(name):
@@ -130,6 +131,24 @@
         "{package}/OtherDependency.java",
     ])
 
+def _test_java_binary_explicit_main_class(name):
+    util.helper_target(
+        java_binary,
+        name = name + "/bin",
+        main_class = "foo.bar.baz",
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_java_binary_explicit_main_class_impl,
+        target = name + "/bin",
+    )
+
+def _test_java_binary_explicit_main_class_impl(env, target):
+    expect_that_executable.of_target(env, target).java_start_class().equals(
+        "foo.bar.baz",
+    )
+
 def java_binary_launcher_tests(name):
     test_suite(
         name = name,
@@ -138,5 +157,6 @@
             _test_java_binary_resources_only,
             _test_java_binary_deploy_jar_coverage_setup,
             _test_java_binary_transitive_dependency_from_java_library,
+            _test_java_binary_explicit_main_class,
         ],
     )
diff --git a/test/java/testutil/binary_executable_subject.bzl b/test/java/testutil/binary_executable_subject.bzl
new file mode 100644
index 0000000..189e1d2
--- /dev/null
+++ b/test/java/testutil/binary_executable_subject.bzl
@@ -0,0 +1,26 @@
+"""Custom rules_testing subject for java_binary/java_test executable output"""
+
+load("@rules_testing//lib:truth.bzl", "subjects")
+
+def _of_target(env, target):
+    executable = target[DefaultInfo].files_to_run.executable.short_path
+    action_subject = env.expect.that_target(target).action_generating(executable)
+    public = struct(
+        java_start_class = lambda: _java_start_class_subject(action_subject),
+    )
+    return public
+
+def _java_start_class_subject(action):
+    if action.actual.substitutions:
+        return action.substitutions().get("%java_start_class%", factory = subjects.str)
+    else:
+        # Windows
+        return action.argv().transform(
+            filter = lambda e: e.startswith("java_start_class="),
+            map_each = lambda e: e.split("=", 1)[1],
+            desc = "java_start_class",
+        ).offset(0, factory = subjects.str)
+
+expect_that_executable = struct(
+    of_target = _of_target,
+)
