3. Le déroulement du workshop

Ce workshop est une session BYOD (Bring Your Own Device), donc vous utilisez votre propre ordinateur portable.

Ce workshop est écrit pour Windows. Si vous utilisez un autre OS, des ajustements pourront être nécessaires.

Le répertoire utilisé dans les exercices de ce workshop est par défaut C:\workshop-javase. Si ce n’est pas le répertoire utilisé, alors il faudra adapter les chemins indiqués.

En préambule, il est nécessaire d’installer les différents outils requis pour la mise en œuvre de ce workshop.

3.1. Les modalités

Vous pouvez suivre pas-à-pas les instructions fournies dans ce document.

Ce workshop se veut être aussi explicite que possible. Le niveau de détail doit permettre que votre travail consiste à suivre les instructions par vous-même.

Chaque lab est autonome. Vous être donc libre de choisir les labs que vous allez réaliser :

  • soit dans l’ordre fourni dans le workshop

  • soit dans l’ordre de votre choix en fonction de vos préférences ou connaissances

Parfois un lab utilise une fonctionnalité détaillée dans un autre lab : dans ce cas, un lien vers ce lab est fourni.

Chaque action à réaliser est détaillée dans un bloc identifié avec l’icône  

3.2. Les fonctionnalités en preview

Depuis l’utilisation du nouveau modèle de release des versions de Java après Java 9, de nombreuses fonctionnalités sont proposées en Preview avant une mise à disposition en standard. Elles sont définies dans la JEP 12.

Une fonctionnalité en preview est une nouvelle fonctionnalité du langage Java, de la machine virtuelle Java ou de l’API Java SE qui est entièrement spécifiée, entièrement mise en œuvre, mais pas encore standard. Elle est proposée dans une version du JDK afin de permettre aux développeurs de l’utiliser et de fournir du feedback. Selon le feedback, elle peut alors évoluer après plusieurs versions pour devenir standard ou être retirée. Il n’y a pas de garantie sur la compatibilité des fonctionnalités proposées en preview avec la version précédente.

L’utilisation de fonctionnalités en preview impose plusieurs points :

  • il faut explicitement les activer à la compilation et à l’exécution en utilisant l’option --enable-preview

  • il faut en plus préciser le niveau de compatibilité du code source à la compilation

3.2.1. Avec le JDK

Il faut utiliser l’option --enable-preview avec les outils javac, java, jshell et javadoc

Il faut en plus préciser le niveau de compatibilité du code source avec les options --release ou -source avec l’outil javac

C:\java>javac --enable-preview --release 24 MonApp.java

C:\java>java --enable-preview MonApp

3.2.2. Avec Eclipse

Par défaut, les fonctionnalités en preview ne sont pas activées et provoquent des erreurs de compilation.

Pour les activer, il faut modifier les propriétés de compilation du projet en utilisant le menu contextuel "Properties" du projet et en sélectionnant "Java Compiler".

Il faut cocher "Enable project specific settings" et cocher "Enable preview features for Java 24".

eclipse properties preview
Eclipse ne permet l’activation des fonctionnalités en preview que pour la version du JDK utilisée par le projet.

3.2.3. Avec IntelliJ Idea

Ouvrir la boite de dialogue « Project structure », soit :

  • en cliquant sur le bouton dans la barre d’outils et en sélectionnant « Project Structure »

    intellij project structure
  • ou en utilisant l’option « File | Project structure…​ » du menu principal

  • ou en utilisant la combinaison de touches Ctrl+Alt+Shift+S

Dans les paramètres du projet (Project Settings/Project) :

  • sélectionner le SDK sur un « JDK 24 »

  • pour le niveau de langage, sélectionner « 24 (Preview) - Flexible constructor bodies, simple source files, etc. »

    intellij project settings preview

3.2.4. Avec Maven

La configuration se fait dans le fichier pom.xml pour chaque plugin qui le requiert.

Exemple avec le plugin compiler
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>24</source>
                <target>24</target>
                <compilerArgs>
                    --enable-preview
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

3.3. Configuration des options de la JVM

Certaines fonctionnalités présentées dans les labs font intervenir des options de la JVM. Celles-ci s’ajoutent dans la ligne de commande java utilisée pour lancer l’application.

Exemple avec l’option -Xmx512m
java -Xmx512m fr.sciam.workshop.javase.Main

3.3.1. Avec Eclipse

Il faut accéder au menu « Run Configurations…​ »

eclipse run configuration

Puis dans l’onglet « Arguments » on peut saisir les paramètres dans le champ de saisie « VM arguments »

eclipse run configuration vm arguments

3.3.2. Avec IntelliJ Idea

Il faut accéder au menu « Configuration → Edit…​ »

intellij edit configuration

Puis « Modify options → Add VM options » ou via le raccourci Alt+V

intellij vm options

Ce qui fait apparaître le champ de saisie des paramètres de la VM

intellij vm options input