OpenBSD and NetBSD have OpenJDK ports, but will probably require some patches.
The Haiku OS and Minix Firefox ports appear to be unmaintained.
Note that all of these are unofficial ports - all of Mozilla's supported platforms are also supported by Bazel.
Even if you write custom rules, you use the Python-like Skylark language and never interact with Java code.
[1]: https://github.com/bazelbuild/bazel/releases (the single-binary distribution is bazel-1.1.0-linux-x86_64, it's only 40MB).
The Python ecosystem is much, much simpler than Java.
The Java ecosystem had painless build artifacts figured out way before Python did (ship this directory of .jar files vs... a requirements.txt?).
With a Java package, the final distro package will mostly be a single .jar file under /usr/share/java/, but getting to that .jar file from source is often a nightmare.
With a Python package, the final distro package will mostly be a sprawling directory under /usr/lib/python/site-packages/, but getting that directory from source is very rarely anything more than `./setup.py install --optimize=1`.
In my experience, large, complicated Python packages with C dependencies can be a huge nightmare just like large Java applications, and simple cases are simple in either case. With many dependencies, you need to unbundle every single one and package it separately, in either case.
Here's a simple, random Java package in Fedora:
https://src.fedoraproject.org/rpms/maven-antrun-plugin/blob/...
It only specifies its dependencies (which are individually packaged), and the %mvn_build and %mvn_install macros take care of everything else.
A slightly more complicated one, Guava:
https://src.fedoraproject.org/rpms/guava/blob/master/f/guava...
Elasticsearch, including unbundling patches:
https://src.fedoraproject.org/rpms/elasticsearch/blob/master...
ChromeOS users don't compile their kernel.
Crostini is built with Rust and Go.