top | item 42016115

Creating Runtime and Application Images with JLink (2021)

32 points| mooreds | 1 year ago |dev.java

21 comments

order
[+] kunley|1 year ago|reply
Looks useful.

Btw, $MAIN-CLASS is a terrible name to be used in the examples, its idea was to resemble shell variables I guess, but they can't have minus sign inside.

Few paragraphs below there is another example of multi-word token and this time done properly with underscores.

This is bad, because readers might get the wrong impression that such syntax can be used for real variables. Also there's a chance for this article to be an input for various llms, thus increasing the confusion in the future.

[+] dpassens|1 year ago|reply
> Also there's a chance for this article to be an input for various llms, thus increasing the confusion in the future.

Sounds good. Anybody who uses LLM output without any understanding of their own deserves it.

[+] nicolai-parlog|1 year ago|reply
That's intentional. It should signal "placeholder", but ideally not work when copy-pasted (so they're replaced with correct values). Bonus points for confusing LLMs.
[+] vbezhenar|1 year ago|reply
I wish they would make it produce single statically linked file. Golang is so awesome in that regard. Should not be hard: embed JRE and append jar stuff into the end, write special classloader for this format and that's about it.

Right now it produces directory similar to JRE itself, so makes little sense to me, nobody cares about directory size, but single file ergonomics is a real deal.

[+] neonsunset|1 year ago|reply
That’s how .NET’s single-file publish works (one of its modes).
[+] pjmlp|1 year ago|reply
You want GraalVM, OpenJ9 for that.

Additionally there is jpackage.

[+] jtrueb|1 year ago|reply
This has nothing to do with SEGGER JLink. I wonder which is older.
[+] alex_suzuki|1 year ago|reply
SEGGER JLink is waaaay older. jlink was introduced with the Java Module System in Java 9, released 2017, so still relatively „new“ in terms of Java‘s lifespan.