.NET 7 introduces AOT (finally!), which allows easy interop with any language on any OS. To demonstrate the possibilities, I bring some Apache Ignite APIs to Rust.
Java has one of the best ecosystems with lots of libraries and frameworks, especially for high-perf distributed applications (see Hadoop, Kafka, Ignite, Cassandra, etc). And there are plenty of developers to hire. So it is a good choice for most backends.
As a developer I prefer C# (IMO the best general purpose language these days), but from the business perspective Java may be a better choice in some cases.
Pays $100K for senior developer role which is big money in many parts of the world (India, Eastern Europe, Africa, etc), so people put up with spyware.
Source code: https://github.com/SteveSandersonMS/DotNetIsolator