<https://dzone.com/articles/what-the-future-java-releases-will-mean-for-legacy>
Fin de JWS prévue avec Java 11…
Nouveau rythme Oracle: un version majeure tous les 6 mois, durée du support gratuit. Java 11 aura un support à plus long terme, payant. Grand nettoyage JRE, suppression de parties obsolètes.
Pour les applis bureau, suppression Applets, JWS,
JavaFX. Si on ne contrôle pas le JRE client, une fois J11 déployé JWS ne marchera plus.
[> forcer le jre des postes clients]
[> livrer le jre voulu ?]
A la sortie de J11 (sept 2018), java 8 passera en support payant à long terme. J11 aura aussi un tel LTS payant. Mais J9 et 10 ne seront pas supporté au)delà des 6 mois.
2 licences: par processeurs, ou NUP > par utilisateur (chaque machine cliente en fait) qui serait logique pour une appli JWS.
Pour faire des build spécifique à un OS, voir javapackage
Remplacer JWS: pas de recette, pas d’outils équivalent.
- il faudra une partie installée sur le client (JWS avait des classes dans les jre), ou alors utiliser des outils du système, différents pour linux, macos, win, etc. Ex
ActiveDirectory sur win.
Pour créer des bundles appli + jre dédié à un OS: javapackager. (attention javapackager est arrivé avec
JavaFX, restera-t-il en J11 ?)
- jlink (depuis J9): créé une jvm avec seulement les fonctionnalités/modules nécessaires pour une appli. Mais ne créé pas un bundle natif, il faudrait un batch pour démarrer l’appli
- outils tiers: install4j, Jwrapper,
IzPack > nécessite une solution pour distribuer sur les clients
- autres outils tiers open-source:
UpdateFX,
GetDown, …. Divers degrés de maturation, de maintenance, rien de parfait.
Fonctionnalités à couvrir pour un outils idéal:
- petit client natif à installer une fois
- capable de gérer plusieurs appli
- capable de télécharger automatiquement les màj
- prise en charge du gestionnaire de sécu java, la vérification des jar signés
- gérer les jre installés, en installer de nouveau si nécessaire, télécharger un jre
- demande par une appli d’utilisation d’un jre spécifique créé par jlink (> J9)
- capable de créer des raccourcis
javapackager |
jlink |
install4j |
Jwrapper |
IzPack |
UpdateFX |
GetDown |
Docker+ Kinematics |
NetX |
Pérennité / maintenance |
? |
? |
X |
X |
X |
? |
? |
? |
Client natif ? |
X |
? |
X |
X |
? |
java |
java |
X |
Gestion multi appli |
? |
? |
X |
X |
? |
- |
- |
|
Téléchargement auto màj |
? |
X |
X |
X |
? |
X |
X |
? |
Sécu jvm, jar signés
| ? |
? |
? |
X |
? |
? |
- |
? |
Gestion des jre locaux |
? |
? |
détection |
? |
? |
- |
- |
? |
Fourniture de jre spécifique à une appli |
? |
? |
X |
? |
? |
- |
- |
? |
Interaction Desktop (raccourcis, …) |
? |
? |
X |
- |
? |
- |
- |
? |
Client natif OS |
L,M,W |
JDK |
L,M,W,U |
M,W,L |
JVM |
JDK |
JVM |
M,W |
Intall4j
Ecrans d'installation riches, wizard, grand choix d'options. Aide en totue langue. 1699¤ licence multi-ptf.
Jwrapper
Cryptage du code. Manipulation services/démons de l’OS. Compression JRE
IzPack
Open Source. Doc hermétique, mise en oeuvre sans doute plus compliquée
GetDown
Simple, libre. Versionnage, patch.
Sans action spéciale
Changer doc. Faire une page de chargement.
UpdateFX
Dans le code:
UpdateFX updater = new
UpdateFX(
MyApplication.class);
updater.checkUpdates();
Dans le répertoire de la classe indiquée, un ficher app-info.properties
app.version = 1.0.1
app.release = 10001
app.licenseVersion = 1
app.updatefx.url =
http://example.com/ExampleAppUpdateFX.xml
Le fichier xml indique l’url du fichier à charger pour chaque version/plateforme.