Sådan pakker du app på Java 11 med ikke-modulære afhængigheder
Opdatering:07
er nu inkluderet siden JDK 14. Det følgende svar gælder dog stadig for ældre JDK-versioner.
Jeg har haft samme problem. Jeg ville bruge JDK 11, men ifølge JDK-8212780 JEP 343 er planlagt til JDK 13, så vi må vente lidt endnu. Pakke "native" selvstændige applikationer under Java 8 - 10 var ikke et problem, da pakkeren var inkluderet (i det mindste i Oracle JDK).
I dag fandt jeg ud af denne e-mail og tænkte, at jeg gerne ville prøve det:Du kan se mit eksempelprojekt på github.com/skymatic/javafx11-test, som jeg pakkede med succes ved hjælp af den back-porterede 16 fra JDK-udviklingsafdelingen.
Hvad jeg gjorde her:
- Oprettede et nyt HelloWorld-projekt ved hjælp af OpenJDK 11 og OpenJFX 11.
- Downloadede pakkeren og påkaldte den fra Maven-builden (bemærk, at den skal ligge i JDK, og du skal indstille
24
for at det virker...) - Bonus:Jeg brugte
38
for at finde ud af afhængigheden af min ikke-modulære jar og indstille46
parameter for at producere et mindre runtime-billede
Selvfølgelig er det endnu nemmere for modulære projekter:I denne commit til mit eksempelprojekt kan du se, at jeg brugte 54
's parametre for modulstien og hovedmodulet i stedet for klassestien og hovedklassen.