One way to do this is something like:
bazel cquery //java/app:App --output=starlark --starlark:expr="'\\n'.join([jar.path for jar in providers(target)['JavaRuntimeClasspathProvider'].runtime_classpath.to_list()])"
The output is:
INFO: Analyzed target //java/app:App (46 packages loaded, 741 targets configured).
INFO: Found 1 target...
bazel-out/k8-fastbuild/bin/java/app/App.jar
bazel-out/k8-fastbuild/bin/java/lib/libLib.jar
bazel-out/k8-fastbuild/bin/java/lib2/libLib2.jar
INFO: Elapsed time: 0.814s
INFO: 0 processes.
INFO: Build completed successfully, 0 total actions
for a build like this:
java/app/BUILD
:java_binary(
name = "App",
srcs = ["App.java"],
deps = ["//java/lib:Lib"],
)
java/lib/BUILD
:java_library(
name = "Lib",
srcs = ["Lib.java"],
deps = ["//java/lib2:Lib2"],
visibility = ["//visibility:public"],
)
java/lib2/BUILD
:java_library(
name = "Lib2",
srcs = ["Lib2.java"],
visibility = ["//visibility:public"],
)