Préambule :

  • Ce TP est en fait un tutoriel qui présente comment mettre en place l'environnement logiciel pour créer un projet java+javafx avec IDEA, étape nécessaire et préalable pour faire le TP casse-brique.
  • Tout est basé sur un ordinateur avec une distribution type debian/ubuntu, un SDK Java du type openjdk+openjfx 11 ou bien 17, et l'IDE Intellij IDEA.
  • Ces hypothèses sont valables notamment pour les machines du département.
  • Si vous utilisez votre propre ordinateur sous windows/mac, les procédures d'installation logicielle seront relativement semblables mais avec des différences notables, par exemple dans les chemins d'accès aux éléments installés.

1°/ Mise en place logicielle

 

1.1°/ java et openjfx 11/17

IMPORTANT : cette mise en place n'est valable que pour votre ordinateur personnel. Les machines du département ont déjà le JDK 11 d'installé.

 Pour la v11 :

  • La v11 est normalement disponible dans les dépots debian/ubuntu.
  • Il suffit donc en tant que root d'installer les paquets openjdk-11-jdk et openjfx:
apt-get install openjdk-11-jdk openjfx
  •  Le compilateur et la JVM sont installés et se trouvent dans /usr/lib/jvm/java-11-openjdk-amd64/bin
  • Les bilbliothèques javafx sont dans /usr/share/openjfx/lib
  • Ces informations sont nécessaires pour configurer IDEA.

 

 Pour la v17 :

  • Pour java, il suffit d'installer le paquet openjdk-17-jdk
apt-get install openjdk-17-jdk
  • Pour openjfx, le plus simple est d'aller sur le site qui distribue openjfx : https://gluonhq.com/products/javafx/
  • Il suffit de choisir dans les listes déroulantes : v17 et l'OS qui vous convient.
  • Attention ! Il faut ensuite bien télécharger la version SDK. Vous obtenez une archive .zip
  • Sous linux, en tant que root, décompacter l'archive dans /usr/share/
  • Vous obtenez un répertoire du style /usr/share/javafx-sdk-17.0.10.
  • Lors de la configuration d'un projet IDEA, c'est ce répertoire qu'il faut choisir (plutôt que /usr/share/openjfx)

 

 

1.2°/ Créer l'arborescence du projet

  • Il suffit de créer un répertoire pour le projet, puis un sous répertoire pour les sources. Ce dernier peut être vide, ou bien déjà contenir des fichiers, par exemple le canevas de code du casse-brique.
  • Exemple pour le casse-brique :
# télécharger le canevas => cassebrique-canevas.tgz
mkdir CasseBrique
mv cassebrique-canevas.tgz CasseBrique
cd CasseBrique
tar zxf cassebrique-canevas.tgz

 

2°/ Le projet IDEA

2.1°/ Création d'un nouveau projet, incluant des sources existantes

 

Remarque : ce tutoriel se base sur une version 11 Java & JavaFx, avec un projet dans le répertoire CasseBrique contenant les sources du canevas. La démarche est exactement la même pour des versions plus récentes, excepté que les répertoires seront différents.

  •  Lancer IDEA,
  • Cliquer sur New Project from existing sources
  • Dans la fenêtre qui apparaît :
    • choisir le répertoire CasseBrique
    • cliquer plusieurs fois sur le bouton Next, jusqu'à obtenir la fenêtre permettant de choisir le SDK. Choisir le 11 puis cliquer sur Next et enfin Finish
  • La fenêtre générale du projet s'ouvre avec à gauche l'aborescence du projet et au centre le contenu du fichier couramment édité.
  • Développer le répertoire src et cliquer sur CasseBrique

 

  • Normalement, toutes les instructions en rapport avec javafx ne sont pas reconnues par IDEA et apparaissent en rouge, comme dans la figure ci-dessous

tuto idea 1

  •  Il faut donc configurer IDEA pour qu'il reconnaisse les classes javaFx mais aussi pour qu'il permette de construire l'application et de la lancer correctement.

 

2.2°/ Configuration du projet

  • La configuration se fait en 3 étapes :
    1. configurer les paquets et sources de javafx comme faisant partie des bibliothèques utilisables par IDEA,
    2. mettre javaFx en dépendance du projet,
    3. création d'une configuration de compilation/exécution.

ATTENTION !

  • La première étape n'a pas besoin d'être faite qu'une seule fois, pour le premier projet javafx que vous créez sous IDEA.
  • Lors de cette première étape, IDEA vous demande s'il doit faire l'étape 2 pour vous. C'est une bonne idée d'approuver !

 

  • Pour les projets suivants, il suffit de suivre les étapes 2 & 3 puisque IDEA connaîtra déjà le chemin d'accès à javafx.

 

2.2.1°/ étape 1 : chemin d'accès à javafx

 

  • Cliquer sur le menu File puis Project Structure.
  • Dans la fenêtre qui apparaît, cliquer sur Global Libraries dans le menu de gauche, en bas.
  • Cliquer sur le bouton +
  • Choisir l'item "Java"

tuto idea 2

 

  • Un navigateur de fichier apparaît.
  • Sélectionner le répertoire dans lequel se trouvent les .jar de javafx. (par ex. /usr/share/openjfx/lib )
  • ATTENTION ! Il ne faut pas choisir le répertoire principal mais choisir le sous-répertoire lib
  • Cliquer sur OK

tuto idea 3

 

  • IDEA demande ensuite s'il faut intégrer cette bibliothèque dans le projet courant.
  • Cliquer sur OK pour approuver.
  • Cela permet de faire automatiquement l'étape 2.

tuto idea 4

 

  • La fenêtre initiale contient maintenant à droite la liste des élément ajoutés, avec notamment un item Classes indiquant où se trouvent les classes de la bibliothèque.
  • Le nom du répertoire choisi à l'étape précédente doit être indiqué juste dessous.

tuto idea 5

 

  • Changer le nom de la bibliothèque pour qu'elle soit plus explicite,
  • Par exemple lib javafx 11 (ou lib javafx 17)
tuto idea 5.1

 

  • Cliquer sur OK pour finaliser et revenir à la fenêtre principale.
  • Le code en rouge a disparu.

 

2.2.2°/ étape 2 : mettre javafx en dépendance du projet

 

  • Cliquer sur le menu File puis Project Structure.
  • Dans la fenêtre qui apparaît, cliquer sur Modules dans le menu de gauche, vers le haut.
  • Dans la partie droite de la fenêtre, cliquer sur l'onglet Dependencies.

tuto idea 6

 

  • cliquer sur le +, puis choisir Library

tuto idea 7

 

  • Choisir dans la liste la bibliothèque correspondant à javaFx.
  • Dans la figure ci-dessous, le nom est simplement lib,
  • Si vous avez suivi les indications ci-dessus, vous devriez avoir lib javafx 11.
  • Cliquer sur Add selected pour l'ajouter au projet.

tuto idea 8

 

  • La partie droite de la fenêtre montre à présent que javafx a été ajouté la liste des dépendances.

tuto idea 9

 

 

  • Cliquer sur OK pour finaliser et revenir à la fenêtre principale.
  • Le code en rouge a disparu.

 

2.2.3°/ étape 3 : configuration de compilation/exécution

  • Cliquer dans la zone en haut à droite intitulée Add a configuration

tuto idea 10

 

  • Dans la fenêtre Run/Debug Configuration qui s'ouvre, cliquer sur le + en haut à gauche
  • Choisir Application

tuto idea 11

 

  • Changer le nom de la configuration dans le champ de saisie name en haut
  • Cliquer sur le champ de saisie Main class

tuto idea 12

 

  • Dans la fenêtre de dialogue qui s'ouvre, choisir la classe qui contient main(),
  • Dans ce tutoriel, c'est CasseBrique,

tuto idea 13

 

  • Dans la fenêtre de configuration, cliquer sur Modify options
  • Choisir Add VM options.

tuto idea 14

 

  • Un nouveau champ de saisie apparaît, entre le JDK utilisé et le nom de la classe principale (cf. image ci-dessous)
  • Dans ce champ copier/coller les options suivantes :
--module-path /usr/share/openjfx/lib --add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web

ATTENTION ! /usr/share/openjfx/lib doit être remplacé par le répertoire dans lequel vous avez mis les .jar javafx (= le même répertoire que vous avez indiqué lors de l'ajout dans Global Libraries à l'étape 1)

 

tuto idea 15

  • Terminer la configuration en cliquant sur OK
  • Cliquer sur la flèche verte en haut à droite, à côté de CasseBrique. Cela compile le projet puis lance l'exécution.
  • Normalement, l'application se lance.