Problem is that the entire runtime is packaged. Nice for large enterprise solutions, but not for small apps.
And if I remember correctly the memory footprint isn't nice either.
But most popular modern desktop apps also bring the whole runtime packaged, just not Java (Node.js / Chromium) (Slack: 120MB, 1password: 136MB, Discord: 103MB).
So I don't see much a difference actually. 30MB is not a lot anymore, not for network, not for disk.
You can trim down the runtime[1] but the tooling around doing this is non-existent / unreliable. Alternatively, you can generate native binaries with GraalVM[2] which comes with its own baggage (license, slow compile time, etc).
So I don't see much a difference actually. 30MB is not a lot anymore, not for network, not for disk.