JEP 12 Preview features (Aperçu)
Contexte
En s’intéressant sur les nouvelles fonctionnalités du JDK, nous en voyons certaines en mode aperçu (preview). Ce mode a été introduit en 2018 dans le JDK 12. La première utilisation a été pour les expressions switch (JEP 325 Switch Expressions (Preview)).
Le principe
L’objectif est d’apporter des nouveautés au niveau du langage, de la JVM ou l’API Java SE. Le point important est que la fonctionnalité est complètement spécifiée et complètement implémentée mais pas de manière permanente. En effet, l’objectif est de fournir la fonctionnalité en standard dans une prochaine version mais avant l’équipe souhaite avoir un retour et des commentaires sur la fonctionnalité.
Fonctionnement
Par défaut, les fonctionnalités en mode aperçu sont désactivées. Il est nécessaire de rajouter le paramètre --enable-preview
. Les exemples ci-dessous sont pour un JDK 16.
Activation à la compilation
javac Programme.java // Pas d’aperçu activé (1)
javac --release 16 --enable-preview Programme.java // Tous aperçu du JDK 16 activés (2)
javac --release 15 --enable-preview Programme.java // PAS AUTORISE (3)
-
par défaut, pas d’aperçu activé
-
les aperçus Java 16 sont disponibles avec un JDK 16
-
les aperçus Java 15 ne sont pas disponibles avec un JDK 16
Les aperçus pouvant évolués en fonction des retours. La JVM peut uniquement activé les aperçus correspondant à sa version.
Activation à l’exécution
java Programme // Pas d’aperçu activé (1)
java --enable-preview Programme // Tous aperçu du JDK 16 activés (2)
java --enable-preview -jar Programme.jar // Tous aperçu du JDK 16 activés (3)
java --enable-preview -m Prg // Tous aperçu du JDK 16 activés (4)
-
par défaut, pas d’aperçu activé
-
mode classpath avec le nom du programme
-
mode classpath avec une archive
-
mode module
Configuration via Maven
Côté Maven, il faut passer les paramètre pour les plugins suivante :
-
maven-compiler-plugin
-
maven-surefire-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>16</release>
<compilerArgs>--enable-preview</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<argLine>--enable-preview</argLine>
</configuration>
</plugin>
Configuration d’Eclipse
La configuration est faite au niveau des propriétés du projet dans le volet Compilateur Java.
Références
Moteur de recherche
"Eduquer, ce n'est pas remplir des vases mais c'est d'allumer des feux." - Michel Montaigne
Billets récents
- Eclipse plante systématiquement sous Debian (et autres distribution Linux)
- JEP 463, Implicitly Declared Classes and Instance Main Methods (Second Preview)
- Debian - Montée de version de Debian 11 (Bullseye) à Debian 12 (Bookworm)
- JEP 451, Prepare to Disallow the Dynamic Loading of Agents
- JEP 444, Virtual Threads