This seems to me like WebAssembly works basically like Java, but the bytecode can be compiled to from multiple languages.

Is this correct?

JVM bytecode can also be compiled from multiple languages:

https://en.wikipedia.org/wiki/List_of_JVM_languages

WASM needs to move beyond MVP state and get first-class support for DOM APIs in the browser and some kind of first-class OS-agnostic APIs for outside the browser.

Until then I will be stuck with Java and J2cl/Closure (https://github.com/google/j2cl).