L'ordre est obligatoire
Java d'abord, Eclipse ensuite, JavaFX à la fin. Une étape sautée et Eclipse ne trouvera pas la bonne machine virtuelle.
C:\Librairie\java\openjfx), ici tout est en chemins Linux. Suivez les commandes de cette page, pas les captures d'écran Windows.Chaque bloc de commandes se copie d'un simple clic.
1. Java 17 (OpenJDK)
Terminalsudo apt update
sudo apt-get install openjdk-17-jre
sudo apt-get install openjdk-17-jdk
java -version
java -version doit répondre 17. Kubuntu 24.04 installe souvent la 21 en même temps : si c'est le cas, on choisit la 17 comme version par défaut.
sudo update-alternatives --config java
sudo update-alternatives --config javac
Dans la liste, prendre la ligne java-17-openjdk-amd64.
2. La variable JAVA_HOME
Sur Ubuntu et Kubuntu, la JDK installée par apt vit dans /usr/lib/jvm/java-17-openjdk-amd64. C'est ce chemin qu'il faut déclarer, et non celui des diaporamas, qui vise une JDK dézippée à la main.
sudo tee /etc/profile.d/java_home.sh <<'FIN'
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
FIN
Fermer la session et la rouvrir, puis vérifier :
echo $JAVA_HOME
3. Eclipse
On télécharge Eclipse sur le site officiel :
- L'installateur : eclipse.org/downloads
- Ou le paquet tout fait : eclipse.org/downloads/packages, choisir Eclipse IDE for Java Developers puis Linux x86_64
apt install eclipse et le paquet snap : les versions offertes par les dépôts sont trop vieilles pour le cours. On prend l'archive .tar.gz du site officiel.cd ~/Téléchargements
tar -xzf eclipse-inst-jre-linux64.tar.gz
./eclipse-installer/eclipse-inst
Avec le paquet Java Developers
cd ~/Téléchargements
tar -xzf eclipse-java-*-linux-gtk-x86_64.tar.gz
./eclipse/eclipse
Si votre système est en anglais, le répertoire est ~/Downloads.
Workspace à créer : /home/votre-nom/workspace-archi.
4. Tester le Java dans Eclipse
Menu New -> Java Project (sans le module-info) -> New -> Class en cochant la case du main :
public class App {
public static void main(String[] args) {
System.out.println("coucou");
}
}
Clic droit sur App.java -> Run As -> Java Application. Si le compilateur ne pointe pas sur 17 : clic droit sur le projet -> Properties -> Java Compiler -> 17.
5. JavaFX : le SDK
JavaFX est la librairie graphique du cours et elle n'est pas dans la JDK : il faut l'ajouter à la main. Le zip Linux testé pour le cours (openjfx 17.0.16) est ici :
Télécharger openjfx-17.0.16 pour Linux (56 Mo)cd ~/Téléchargements
unzip openjfx-17.0.16_linux-x64_bin-sdk.zip
sudo mkdir -p /usr/lib/jvm/openjfx
sudo cp -r javafx-sdk-17.0.16/lib javafx-sdk-17.0.16/legal /usr/lib/jvm/openjfx/
ls /usr/lib/jvm/openjfx/lib
La dernière commande doit afficher les sept librairies du cours : javafx.base.jar, javafx.controls.jar, javafx.fxml.jar, javafx.graphics.jar, javafx.media.jar, javafx.swing.jar, javafx.web.jar.
6. La User Library JavaFX dans Eclipse
- Clic droit sur le projet -> Properties -> Java Build Path -> onglet Libraries
- Add Library -> User Library -> bouton User Libraries -> New
- Nommer la librairie
JavaFX - Add External JARs et prendre tous les
.jarde/usr/lib/jvm/openjfx/lib
Dépannage
Run -> Run Configurations -> onglet Arguments -> VM arguments :
--module-path /usr/lib/jvm/openjfx/lib --add-modules=javafx.controls,javafx.fxml
Refaire l'étape 2, puis fermer et rouvrir la session : le fichier de /etc/profile.d/ n'est lu qu'à l'ouverture.
Avant tout diagnostic : regardez votre deuxième écran. Neuf fois sur dix, la fenêtre s'y est ouverte.
Unsupported JavaFX configuration: classes were loaded from unnamed module et le message sur la version 20.0.1 des FXML sont normaux : l'application démarre quand même. Par contre A restricted method in java.lang.System has been called signale une JDK 24 : reprenez l'étape 1, le cours exige la 17.
Le cours vise le noyau 6.14 : voir la fiche Le noyau Linux du cours.
Récapitulatif des commandes
| Étape | Commande |
|---|---|
| Installer la JDK 17 | sudo apt-get install openjdk-17-jdk |
| Vérifier la version | java -version |
| Choisir la 17 par défaut | sudo update-alternatives --config java |
| Vérifier JAVA_HOME | echo $JAVA_HOME |
| Déployer le SDK JavaFX | sudo cp -r javafx-sdk-17.0.16/lib javafx-sdk-17.0.16/legal /usr/lib/jvm/openjfx/ |
| Vérifier les librairies | ls /usr/lib/jvm/openjfx/lib |