3 ms·
> not so great if you want to distribute software for people who are not software savvy, who typically just wants to download one file, install and start using
by chii 3y ago
> not so great if you want to distribute software for people who are not software savvy, who typically just wants to download one file, install and start using it.
i think it's a flaw that wasn't considered properly in the standard java toolchain to not produce an embedded java runtime into a final packaged artifact that is self-executable.
You end up with third party tooling like: https://www.ej-technologies.com/resources/install4j/help/doc/concepts/launchers.html https://www.ej-technologies.com/resources/install4j/help/doc... (and https://launch4j.sourceforge.net/ https://launch4j.sourceforge.net/ too).
If oracle bundled this tool into the JDK, it would've not been an issue at all.
- pjmlp 3y agoIt has existed for 20 years, and already started with Sun. Having AOT compilers as commercial offerings, was seen as one way to capture value in the Java market, in a culture where most compilers were still commercial, GCC being the exception.
- coldtea 3y ago>It has existed for 20 years, and already started with Sun. In an anemic way, with mostly third party offerings few people know or care about, and various degrees of pain and shortcoming to their use. It should be a first class feature, and as simple to use as is in Go (including for cross compiling). In general, if something exists in "some form" for 30+ years in a language, and only a handful of people use it, whereas in another it's used all the time and people from other languages are jealous of how well it works, then the formers "some form" is not a good one.
- pjmlp 3y agoRegardless, it exists.
- javcasas 3y agoThat wasn't a flaw. It was a "feature". Can yo you think of a way to increase market awareness of Java other than putting an icon on every computer in the world saying "Your Java needs to be updated" every two weeks?
- nvm0n2 3y agoThere is jpackage and jlink, which don't do single files but make single directory apps. These days there's also GraalVM native image which does produce Go-like results. But with everyone using Docker on the server anyway it doesn't matter anymore. People who talk about single binaries are confusing to me. What are you doing where shipping one file is so much simpler than shipping a container?
- chii 3y ago> What are you doing where shipping one file is so much simpler than shipping a container? Desktop applications. Java would be a more popular desktop application platform if it weren't for the difficulty in this area (which, to be fair, isn't the only difficulty - cross platform is difficult inherently).
- synergy20 3y agoit's pretty hard for average Joe to install a docker engine before he can pull and run dockers, plus docker is not that great for cross platform desktop GUIs.
- otabdeveloper4 3y ago> everyone using Docker Not really.
- vips7L 3y agojpackage and jlink are shipped in the jdk.