1. Create minimal JVM and runtime with GUI primitives and compile it into .EXE
2. Create packager that concats class files (in JAR) of your application with that EXE.
3. Sign the exe. That's your monolithic application without external dependencies.
Done. You can distribute your Java applications without any need for JRE, WebStart or anything like that.
Did that once as J-SMILE (https://terrainformatica.com/org/j-smile/) project.
That minimal JVM was of size 300 kb so nothing if to compare with the rest of .class files of your app. So Java executables can be in principle smaller than comparable Go's executables.