Accueil  / Semaine 5 / Rappel sur Java

Rappel sur Java

Installation d’un environnement de développement Java

Vous devez disposer d’une machine virtuelle Java récente (Java 1.5 ou une version supérieure, sinon certains outils utilisés dans le cours ne fonctionneront pas) sur votre ordinateur, incluant le compilateur Java : « javac ». Si vous n’en avez pas, il faut effectuer le téléchargement et l’installation d’une telle machine. En outre, vous devez avoir sur votre ordinateur la trousse de développement SDK (souvent nommé le SDK dans l’usage), pas uniquement l’environnement JRE. Sur la page qui se trouve à l’adresse https://adoptopenjdk.net/, cliquez sur « Download JDK ». Le téléchargement peut prendre plusieurs minutes. Il suffit ensuite de lancer le fichier exécutable que vous venez d’enregistrer sur votre ordinateur pour installer la trousse SDK.

Ensuite, lancez la machine virtuelle Java avec une ligne de commande. Pour cela, il faut ouvrir une fenêtre de commande. Sous Windows 8 et versions ultérieures, cliquez en bas à gauche avec le bouton droit de la souris et sélectionnez « invite de commandes ». Sous Windows XP ou les versions plus récentes de Windows, dans le menu « Démarrer », cliquez sur « Exécuter » ; une fenêtre s’ouvre, tapez le nom de programme « cmd » pour ouvrir une fenêtre de commande. Notez qu’avec les versions plus anciennes de Windows, comme Windows 98, il faut taper « command.com ». Une fenêtre s’ouvre alors avec un fond noir, c’est la fenêtre de commande.

Ligne de commande

Si vous n’êtes pas familier avec la ligne de commande, vous devriez lire un des nombreux guides qui se trouvent sur Internet. Nous supposerons ici que vous êtes familier avec les commandes cd, dir, et les notions de système de fichier, de répertoire, de répertoire courant. Tout au long du cours, nous donnerons des consignes précises, de telle manière à ce qu’il ne soit pas nécessaire d’être un expert de la ligne de commande pour compléter ce cours, mais il est souhaitable que vous compreniez ce que l’on vous demande de faire.

Les instructions supposent généralement que vous utilisez Windows, mais il est parfaitement possible de suivre ce cours avec MacOS ou Linux. Sous MacOS, la ligne de commande se trouve sous Applications > Utilities > Terminal. Par défaut, MacOS utilise une ligne de commande de type bash. Vous trouverez sans mal des guides vous introduisant à bash sur le web.

Test de la machine virtuelle

Testez l’installation de votre machine virtuelle en tapant « java » suivi du retour de chariot. Vous devriez recevoir un message qui commence par :

      Usage: java [-options] class [args...]
                 (to execute a class)
         or  java -jar [-options] jarfile [args...]
                 (to execute a jar file)

ou quelque chose de similaire. Testez aussi l’installation du
compilateur en tapant « javac » ; vous devriez voir un message qui resssemble à celui-ci :

Usage: javac <options> <source files>

Si ce n’est pas le cas, nous vous conseillons de vérifier l’installation de votre machine virtuelle et de procéder à sa réinstallation au besoin. Si tout est bien installé et que ça ne fonctionne toujours pas, vous devrez indiquer le chemin pour trouver le compilateur en tapant la ligne de commande :

PATH=adresse_du_fichier_javac.exe

Le fichier « javac.exe » se trouve dans le dossier « bin »
du SDK. Par défaut, ce fichier se trouve dans le « C :». Si vous ne savez plus où est installé le SDK, vous pouvez faire une recherche, à partir du menu « Démarrer » de Windows. Une fois le chemin indiqué, retapez la commande « javac » et, cette fois, tout devrait bien fonctionner. Comme il peut être lourd de modifier la variable d’environnement PATH chaque fois, il est possible de la modifier une fois pour toutes : allez dans « Démarrer », choisissez « Paramètres »,
puis « Panneau de configuration », et ouvrez « Système »,
cliquez sur l’onglet « Avancé » ; cliquez ensuite sur le bouton « Variables d’environnement », sélectionnez « PATH » dans la liste des variables [1], cliquez sur le bouton « Modifier » et ajoutez, à la fin du contenu de la variable, « ;adresse_du_fichier_javac.exe »,
par exemple « ;C :\Program Files\Java\jdk15.0\bin ».

Vérifier la version

Il est essentiel d’avoir Java 1.5 ou une version supérieure. Pour vérifier si c’est bien le cas, exécutez les commandes suivantes :

$ javac -version
$ java -version

Comme dans l’exemple ci-dessus, vous devriez voir un numéro de version commençant par 1.5 ou par un numéro supérieur.

Il est possible sous Windows de désinstaller un logiciel si vous trouvez une version de Java qui ne convient pas.

Aller chercher un éditeur de texte convenable

Je vous recommande d’utiliser l’éditeur de texte Visual Studio Code. Il est gratuit, il est extensible et il fonctionne sous plusieurs plateformes (Windows, Mac et Linux).

Avant d’aller plus loin, vous devriez vérifier que vous pouvez utiliser l’éditeur de texte pour créer et ouvrir des fichiers.

« Hello World » en Java

Avec un éditeur de texte, créez un fichier nommé « bonjour.java » et ayant le contenu suivant :

public class bonjour {
 public static void main (String[] args){
   System.out.println("Bonjour !");
 }
}

Vous devriez maintenant pouvoir compiler et exécuter le programme.

javac bonjour.java
java bonjour

On peut aussi créer des programmes plus sophistiqués comme celui-ci :

public class bonjourbis{
 public static void main (String[] args){
  String nom = new String(args[0]);
  System.out.println("Bonjour "+nom+" !");
 }
}

Rappels :
 Une classe est « exécutable » si elle a une méthode « public static void main (String[] args) ». C’est cette fonction qui est appelée quand vous faites « java bonjour ».
 La casse est importante en Java. La variable « i » n’est pas la même variable que la variable « I ».
 Votre fichier java ne peut contenir qu’une seule classe « public » et le fichier doit avoir le même nom que cette classe.
 Les instructions, dans une fonction, doivent être séparées par le point-virgule ( ; ).

Pour un rappel plus complet

Nous vous invitons à récupérer le manuel Java Pas à Pas rédigé par Godin et Lemire.

Terminologie

Un objet

Java est un langage orienté objet. Le terme orienté objet signifie que l’on modélise le problème en utilisant des « objets ». Les objets possèdent des données (les attributs) et des comportements (les méthodes). Dans la plupart des langages orientés objets,
les objets appartiennent à une « classe » qui en définit le type.

Une classe

Une classe est un modèle pour créer des objets qui ont des caractéristiques communes. La classe comporte la structure d’un objet (ses attributs et ses méthodes). On dit qu’un objet
est l’instance d’une classe et on parle alors d’instanciation. En Java, tous les objets sont créés à partir d’une classe.

Une méthode

Une méthode est une fonction qui peut être appliquée aux objets ou qui est appliquée par les objets. Par exemple, pour une classe « Voiture », une méthode pourrait être « Freiner » ou « Accélérer ».

Une interface

Une interface est définie par un ensemble de méthodes et de variables à la manière d’une classe ; mais, à la différence d’une classe, on ne peut l’utiliser comme modèle pour créer un objet.
On dit d’une classe qui contient toutes les méthodes spécifiées par l’interface qu’elle implémente l’interface en question.

En pratique, l’interface peut se traiter comme une classe : si la classe « Voiture » implémente
l’interface « Véhicule », alors tous les objets instanciés à partir de « Voiture » peuvent
être traités comme des objets de type « Véhicule ». Une même classe peut implémenter plusieurs interfaces.

L’héritage

L’héritage est un lien entre des classes. Si une classe est créée à partir d’une classe déjà existante,
elle « hérite » de ses attributs et de ses méthodes.
Par exemple, la classe « voiture » pourrait hériter de la classe « engin ».

L’encapsulation

L’encapsulation consiste à protéger un objet, en empêchant l’accès à ses données par un autre moyen que les méthodes proposées.

Où est-ce que Java trouve les classes ?

En Java, chaque classe publique est dans un fichier distinct (avec l’extension .class). Java utilise normalement la variable système CLASSPATH pour trouver les classes. La variable CLASSPATH est une liste de fichiers jar ou de répertoire où peut se trouver vos classes avec la convention que le point désigne le répertoire courant. Les classes situées dans un paquetage doivent être dans un sous-répertoire : par exemple la classe objet.Chaise pourra se trouver dans le répertoire objet sous la forme d’un fichier Chaise.class.

Si vous n’êtes pas familier avec cette variable, vous devriez consulter un guide :

 Tout ce que vous avez toujours voulu savoir sur le CLASSPATH
 Introduction au classpath, aux packages et path du système

Dans ce cours, nous supposons que vous pouvez compiler des classes Java et donc ajuster la variable CLASSPATH afin que java trouve les classes. Il est de votre responsabilité de vous assurez de comprendre le fonctionnement de la machine virtuelle Java.

« Hello World » en Java en deux classes

Avec un éditeur de texte, créez un nouveau fichier nommé « librairie.java » et ayant le contenu suivant :

package monjava;

public class librairie {
 public static void bonjour (){
   System.out.println("Bonjour !");
 }
}

et un nouveau fichier bonjour2.java avec ce contenu :

import monjava.librairie;

public class bonjour2 {
 public static void main (String[] args){
   librairie.bonjour();
 }
}

Placez le fichier librairie.java dans un sous-répertoire nommé monjava. Par exemple, si vous êtes dans c :\mondossier, vous devriez avoir les fichiers c :\mondossier\monjava\librairie.java et c :\mondossier\bonjour2.java.

Vous devriez maintenant pouvoir compiler et exécuter le programme.

javac bonjour2.java

Si vous regardez sur votre disque, vous devriez maintenant avoir les fichiers c :\mondossier\monjava\librairie.class et c :\mondossier\bonjour2.class.

Tapez maintenant :

java bonjour2

Vous devriez recevoir le message « Bonjour ! ».

Maintenant, effacez le dossier « monjava » et tout son contenu. Tapez :

javac bonjour2.java

Vous devriez alors avoir une erreur de compilation car java ne trouve plus la classe monjava.librairie.

Assurez-vous de bien comprendre comment Java charge des classes avec de continuer. Au besoin, continuez vos expériences.


[1Les noms des variables d’environnement sous Windows ne sont pas sensibles à la casse.