Programmation Java/Premier programme
Premier programme
modifierLe fichier source
modifierCe programme doit être écrit dans le fichier Exemple.java.
public class Exemple
{
public static void main(String[] args)
{
System.out.println("Hello world!");
}
}
Explications sur le langage
modifierCe programme est le classique Hello world. Comme son nom l'indique, ce programme va afficher la phrase "Hello world" à l'écran. Analysons-le ligne par ligne :
public class Exemple
{
Cette ligne déclare une classe publique que nous appelons Exemple.
Un fichier .java
ne peut contenir qu'une seule classe publique et le fichier doit porter le nom de cette classe.
Ainsi, le fichier de ce premier exemple s'appellera obligatoirement Exemple.java
(en respectant la casse).
Ce système de nommage permet au compilateur et à l'interpréteur de trouver les fichiers correspondant à une classe.
public static void main(String[] args)
{
Cette ligne déclare une méthode appelée main
. Cette méthode est le point d'entrée du programme (la méthode appelée lorsqu'il sera exécuté).
Elle prend en argument un tableau de chaînes de caractères (String[] args
) et ne retourne rien (void
).
Cette méthode est publique et statique, ce qui sera expliqué plus loin.
System.out.println("Hello world!");
Cette dernière instruction invoque la méthode println
de l'objet out
se trouvant dans la classe System
en lui passant en argument la chaîne Hello world!
.
L'exécution de cette méthode aura pour résultat l'affichage de Hello world!
.
Cette ligne peut sembler obscure pour l'instant. Les détails seront abordés par la suite.
Compilation du fichier source
modifierTapez le programme précédent et sauvegardez le dans un fichier Exemple.java (pour la raison expliquée précédemment) et tapez dans une fenêtre :
Invite de commande DOS | Terminal Unix |
---|---|
> javac Exemple.java
> dir
Exemple.class
Exemple.java
>
|
$ javac Exemple.java
$ ls
Exemple.class
Exemple.java
$
|
Le compilateur Javac a produit le fichier Exemple.class, contenant le code intermédiaire. Ce fichier n'est normalement pas éditable[1], ce qui peut garantir le copyright.
Voici les points à vérifier selon le type de problème :
- Le système indique que le compilateur est introuvable
-
- Vérifiez que vous avez installé un kit de développement Java (le JDK) et pas simplement un environnement d'exécution (JRE) qui ne comporte pas les outils de compilation.
- Vérifiez que le chemin du répertoire bin contenant le compilateur javac (javac.exe sous Windows) est dans la liste de la variable d'environnement
PATH
.
- Le compilateur se lance mais affiche une erreur de classe non trouvée
-
- Si la classe ne déclare aucun paquetage (package), vérifiez que vous lancez la commande depuis le répertoire où se trouve le fichier source (*.java). Changez de répertoire si nécessaire avant de recommencer.
- Sinon, vous devez lancer la commande depuis le répertoire parent du paquetage racine, en donnant le chemin relatif du fichier source depuis ce répertoire parent.
- Dans les deux cas ci-dessus, en plus de changer de répertoire courant, il peut être nécessaire d'ajouter le chemin de ce répertoire dans le classpath. Cela peut être fait soit dans la ligne de commande avec l'option
-classpath
(ou-cp
), soit dans la variable d'environnementCLASS_PATH
.
- Le compilateur se lance mais affiche une erreur de syntaxe
-
- Vérifiez le contenu du fichier source. Pour compiler les exemples de ce livre, le mieux est de faire un copier-coller complet du code.
- Assurez-vous de compiler le bon fichier source et pas un autre.
Exécution du programme
modifierJava est une machine virtuelle java fournie par Oracle et disponible pour de nombreux environnements.
Pour exécuter notre code intermédiaire, il faut taper :
java Exemple
L'exécution du programme affiche dans une fenêtre console la fameuse phrase Hello world!.
Voici les points à vérifier selon le type de problème :
- Le système indique que la commande java est introuvable
-
- Vérifiez que vous avez installé un kit de développement Java (le JDK).
- Vérifiez que le chemin du répertoire bin contenant l'interpréteur java (java.exe sous Windows) est dans la liste de la variable d'environnement
PATH
.
- L'interpréteur se lance mais affiche une erreur de classe non trouvée
-
- Vérifiez que vous avez compilé le fichier source *.java (voir section précédente) sans erreur, c'est-à-dire que vous avez obtenu un fichier compilé *.class.
- Si la classe ne déclare aucun paquetage (package), vérifiez que vous lancez la commande depuis le répertoire où se trouve le fichier compilé (*.class). Changez de répertoire si nécessaire avant de recommencer.
- Sinon, vous devez lancer la commande depuis le répertoire parent du paquetage racine, en donnant le nom complet de la classe (incluant le nom du paquetage).
- Dans les deux cas ci-dessus, en plus de changer de répertoire courant, il peut être nécessaire d'ajouter le chemin de ce répertoire dans le classpath. Cela peut être fait soit dans la ligne de commande avec l'option
-classpath
(ou-cp
), soit dans la variable d'environnementCLASS_PATH
.
- L'interpréteur se lance mais rien ne s'affiche, ou le comportement n'est pas le même
-
- Vérifiez le contenu du fichier source. Pour compiler les exemples de ce livre, le mieux est de faire un copier-coller complet du code.
- Assurez-vous de lancer la bonne classe principale et pas une autre.
Extraits de code dans ce livre
modifierDans ce livre, les chapitres peuvent être illustrés par du code source ne constituant pas une application complète en général, afin de ne pas encombrer le code avec les déclarations de classes et de méthode principale. Ces extraits de code incluent en général des importations de paquetages, des déclarations de variables et des instructions. Toutes ces déclarations peuvent être incluses dans le modèle suivant afin de constituer une application pour tester les extraits de code :
package org.wikibooks.org;
//... import de paquetages ici
// exemple :
//import java.util.*;
public class Exemple
{
//... variables membres et statiques ici
// exemple :
//private static String groupe = "Tous";
public static void main(String[] args)
{
//... variables locales ici
// exemple :
//String salut = "Bonjour";
//... instructions ici
// exemple :
//System.out.println(salut + " à " + groupe);
}
}