diff --git a/MODULE.bazel b/MODULE.bazel
index de8fe11..204b8e8 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -131,9 +131,9 @@
 bazel_dep(name = "rules_testing", dev_dependency = True)
 archive_override(
     module_name = "rules_testing",
-    integrity = "sha256-TqwTCQnzt/hRKQtdJ7d8ebtZ8+I8IMgmWiEjOKvo6mI=",
-    strip_prefix = "rules_testing-f8e869d452507fa4a59748c9d69cfab63ec9385a",
-    urls = ["https://github.com/bazelbuild/rules_testing/archive/f8e869d452507fa4a59748c9d69cfab63ec9385a.tar.gz"],
+    integrity = "sha256-d/94Ix5IoGXk9rP1HjYKxPMH8ccwX5b1Qxs8BKg4WRg=",
+    strip_prefix = "rules_testing-ac97ba507116056cd489161b5e99dd8014685adc",
+    urls = ["https://github.com/bazelbuild/rules_testing/archive/ac97ba507116056cd489161b5e99dd8014685adc.tar.gz"],
 )
 
 test_repositories = use_extension("//test:repositories.bzl", "test_repositories_ext", dev_dependency = True)
diff --git a/test/java/testutil/javac_action_subject.bzl b/test/java/testutil/javac_action_subject.bzl
index 28d1916..ed6e9fa 100644
--- a/test/java/testutil/javac_action_subject.bzl
+++ b/test/java/testutil/javac_action_subject.bzl
@@ -20,9 +20,7 @@
 
     public = struct(
         direct_dependencies = lambda: _create_subject_for_flag("--direct_dependencies", self.parsed_flags, self.meta),
-        source = lambda: _create_subject_for_flag("-source", self.parsed_flags, self.meta),
-        target = lambda: _create_subject_for_flag("-target", self.parsed_flags, self.meta),
-        xmaxerrs = lambda: _create_subject_for_flag("-Xmaxerrs", self.parsed_flags, self.meta),
+        javacopts = lambda: _create_subject_for_flag("--javacopts", self.parsed_flags, self.meta),
         jar = lambda: _create_subject_for_flag("-jar", self.parsed_flags, self.meta),
         sources = lambda: _create_subject_for_flag("--sources", self.parsed_flags, self.meta),
         executable_file_name = lambda: subjects.str(action_subject.actual.argv[0], self.meta),
@@ -37,7 +35,12 @@
     for idx, arg in enumerate(argv):
         if idx == 0:
             continue  # java command
-        if arg.startswith("-"):
+
+        if current_flag_name == "--javacopts" and arg == "--":
+            current_flag_name = None
+            continue
+
+        if arg.startswith("-") and current_flag_name != "--javacopts":
             if "=" in arg:
                 parts = arg.split("=", 1)
                 flag_values.setdefault(parts[0], []).append(parts[1])
diff --git a/test/java/testutil/javac_action_subject_tests.bzl b/test/java/testutil/javac_action_subject_tests.bzl
index eba3f76..c1e577b 100644
--- a/test/java/testutil/javac_action_subject_tests.bzl
+++ b/test/java/testutil/javac_action_subject_tests.bzl
@@ -18,6 +18,7 @@
         "JavaBuilder_deploy.jar",
         "--output",
         "blaze-out/k8/bin/pkg/libfoo.jar",
+        "--javacopts",
         "-source",
         "21",
         "-target",
@@ -49,13 +50,18 @@
         ],
         "-jar": ["JavaBuilder_deploy.jar"],
         "--output": ["blaze-out/k8/bin/pkg/libfoo.jar"],
-        "-source": ["21"],
-        "-target": ["17"],
-        "-g": [],
-        "-parameters": [],
-        "-sourcepath": [":"],
-        "-Xmaxerrs": ["123"],
-        "--": [],
+        "--javacopts": [
+            "-source",
+            "21",
+            "-target",
+            "17",
+            "-g",
+            "-parameters",
+            "-sourcepath",
+            ":",
+            "-Xmaxerrs",
+            "123",
+        ],
         "--strict_java_deps": ["ERROR"],
         "--classpath": ["pkg/bar-hjar.jar", "other/pkg/baz.jar"],
     }, flags)
diff --git a/test/java/toolchains/java_toolchain_tests.bzl b/test/java/toolchains/java_toolchain_tests.bzl
index 3019a66..f685fdd 100644
--- a/test/java/toolchains/java_toolchain_tests.bzl
+++ b/test/java/toolchains/java_toolchain_tests.bzl
@@ -1,10 +1,11 @@
 """Tests for the java_toolchain rule"""
 
 load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite")
-load("@rules_testing//lib:truth.bzl", "matching")
+load("@rules_testing//lib:truth.bzl", "matching", "subjects")
 load("@rules_testing//lib:util.bzl", "util")
 load("//java:java_binary.bzl", "java_binary")
 load("//java:java_library.bzl", "java_library")
+load("//java:java_plugin.bzl", "java_plugin")
 load("//java/common:java_semantics.bzl", "semantics")
 load("//java/toolchains:java_runtime.bzl", "java_runtime")
 load("//java/toolchains:java_toolchain.bzl", "java_toolchain")
@@ -83,15 +84,19 @@
 
 def _test_javac_gets_options_impl(env, targets):
     assert_javac_action = javac_action_subject.of(env, targets.a, "{package}/lib{name}.jar")
-    assert_javac_action.source().contains_exactly(["6"])
-    assert_javac_action.target().contains_exactly(["6"])
-    assert_javac_action.xmaxerrs().contains_exactly(["500"])
+    assert_javac_action.javacopts().contains_at_least([
+        "-source",
+        "6",
+        "-target",
+        "6",
+        "-Xlint:toto",
+        "-Xmaxerrs",
+        "500",
+    ])
     assert_javac_action.jar().contains_exactly(["{package}/JavaBuilder_deploy.jar"])
     assert_javac_action.inputs().contains("{package}/rt.jar")
 
-    assert_argv = assert_javac_action.argv()
-    assert_argv.contains("-Xlint:toto")
-    assert_argv.not_contains("-g")
+    assert_javac_action.javacopts().not_contains("-g")
 
     assert_header_action = javac_action_subject.of(env, targets.b, "{package}/lib{name}-hjar.jar")
     assert_header_action.argv().contains("{package}/turbine_direct")
@@ -415,6 +420,113 @@
         matching.contains("must produce a single file"),
     )
 
+def _test_java_compile_action_target_gets_javacopts_from_toolchain(name):
+    _declare_java_toolchain(
+        name = name,
+        javacopts = ["-XDtoolchainJavacFlag"],
+    )
+    util.helper_target(
+        java_library,
+        name = name + "/lib",
+        srcs = ["a.java"],
+    )
+    analysis_test(
+        name = name,
+        impl = _test_java_compile_action_target_gets_javacopts_from_toolchain_impl,
+        target = name + "/lib",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+            "//command_line_option:javacopt": ["-XDcommandLineJavacFlag"],
+            "//command_line_option:host_javacopt": ["-XDhostCommandLineJavacFlag"],
+        },
+    )
+
+def _test_java_compile_action_target_gets_javacopts_from_toolchain_impl(env, target):
+    assert_javacopts = javac_action_subject.of(env, target, "{package}/lib{name}.jar").javacopts()
+    assert_javacopts.contains_exactly([
+        "-source",
+        "6",
+        "-target",
+        "6",
+        "-Xlint:toto",
+        "-XDtoolchainJavacFlag",
+        "-XDcommandLineJavacFlag",
+    ])
+
+def _test_java_compile_action_exec_gets_javacopts_from_toolchain(name):
+    _declare_java_toolchain(
+        name = name,
+        javacopts = ["-XDtoolchainJavacFlag"],
+    )
+    util.helper_target(
+        java_library,
+        name = name + "/lib",
+        srcs = ["a.java"],
+    )
+    util.helper_target(
+        util.force_exec_config,
+        name = name + "/exec_lib",
+        tools = [name + "/lib"],
+    )
+    analysis_test(
+        name = name,
+        impl = _test_java_compile_action_exec_gets_javacopts_from_toolchain_impl,
+        target = name + "/exec_lib",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+            "//command_line_option:javacopt": ["-XDcommandLineJavacFlag"],
+            "//command_line_option:host_javacopt": ["-XDhostCommandLineJavacFlag"],
+        },
+    )
+
+def _test_java_compile_action_exec_gets_javacopts_from_toolchain_impl(env, target):
+    lib = env.expect.that_target(target).attr("tools", factory = subjects.collection).actual[0]
+    assert_javacopts = javac_action_subject.of(env, lib, "{package}/lib{name}.jar").javacopts()
+    assert_javacopts.contains_exactly([
+        "-source",
+        "6",
+        "-target",
+        "6",
+        "-Xlint:toto",
+        "-XDtoolchainJavacFlag",
+        "-XDhostCommandLineJavacFlag",
+    ])
+
+def _test_java_compile_action_uses_tool_specific_jvm_opts(name):
+    _declare_java_toolchain(
+        name = name,
+        jvm_opts = ["-Xbase"],
+        javabuilder_jvm_opts = ["-DjavabuilderFlag=1"],
+        turbine_jvm_opts = ["-DturbineFlag=1"],
+    )
+    util.helper_target(
+        java_plugin,
+        name = name + "/plugin",
+        processor_class = "Proc",
+        generates_api = True,
+    )
+    util.helper_target(
+        java_library,
+        name = name + "/lib",
+        srcs = ["a.java"],
+        plugins = [name + "/plugin"],
+    )
+    analysis_test(
+        name = name,
+        impl = _test_java_compile_action_uses_tool_specific_jvm_opts_impl,
+        target = name + "/lib",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
+    )
+
+def _test_java_compile_action_uses_tool_specific_jvm_opts_impl(env, target):
+    javac_action = javac_action_subject.of(env, target, "{package}/lib{name}.jar")
+    javac_action.argv().contains("-DjavabuilderFlag=1")
+
+    header_action = env.expect.that_target(target).action_generating("{package}/lib{name}-hjar.jar")
+    header_action.argv().contains("-DturbineFlag=1")
+
 def java_toolchain_tests(name):
     test_suite(
         name = name,
@@ -434,5 +546,8 @@
             _test_location_expansion_in_jvm_opts,
             _test_location_expansion_with_multiple_artifacts_fails,
             _test_timezone_data_with_multiple_artifacts_fails,
+            _test_java_compile_action_target_gets_javacopts_from_toolchain,
+            _test_java_compile_action_exec_gets_javacopts_from_toolchain,
+            _test_java_compile_action_uses_tool_specific_jvm_opts,
         ],
     )
