Guide : La méthode main simplifiée en Java¶
1. Introduction¶
Depuis Java 21 (Preview), il est possible d’écrire des programmes Java avec une syntaxe simplifiée pour la méthode main,
notamment grâce aux classes sans nom (Unnamed Classes) et aux méthodes main d’instance. Ce guide explique
aussi comment utiliser le paramètre String[] args, souvent méconnu des débutants, mais essentiel pour interagir avec
un programme via des arguments externes.
2. Rappel : La méthode main classique¶
Jusqu’à Java 20, la méthode main devait être déclarée de manière statique dans une classe nommée, par exemple :
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
- Points clés :
- La classe doit être déclarée (
public class HelloWorld). - La méthode
maindoit êtrepublic,static, et prendre un tableau deStringen paramètre.
- La classe doit être déclarée (
3. La nouvelle syntaxe simplifiée¶
a. Classe sans nom et méthode main d’instance¶
À partir de Java 21 (Preview) et Java 25, il est possible d’écrire :
- Points clés :
- Plus besoin de déclarer une classe.
- La méthode
mainpeut être une méthode d’instance (sansstatic). - Le paramètre
String[] argsest optionnel si non utilisé.
b. Avec paramètre (si nécessaire)¶
Si vous avez besoin d’accéder aux arguments de la ligne de commande :
4. À quoi sert String[] args ?¶
Le paramètre String[] args permet à un programme Java de recevoir des arguments lors de son exécution. Ces
arguments sont passés sous forme de chaînes de caractères (String) et peuvent être utilisés pour :
- Personnaliser le comportement du programme.
- Passer des données au programme sans avoir à les coder en dur.
- Automatiser des tâches (scripts, traitements par lots, etc.).
Exemple concret¶
Supposons que vous voulez écrire un programme qui salue une personne dont le nom est passé en argument :
void main(String[] args) {
if (args.length > 0) {
System.out.println("Bonjour, " + args[0] + " !");
} else {
System.out.println("Bonjour, inconnu !");
}
}
- Si vous exécutez ce programme avec l’argument
Alice, il affichera :Bonjour, Alice ! - Sans argument, il affichera :
Bonjour, inconnu !
5. Comment passer des arguments en ligne de commande ?¶
a. Depuis le terminal (Linux/macOS/Windows)¶
- Compilez votre programme :
- Exécutez-le en passant des arguments :
AliceetBobseront accessibles dansargs[0]etargs[1]respectivement.
Exemple complet :
// Fichier : Bonjour.java
void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("Argument " + i + " : " + args[i]);
}
}
- Compilation :
javac Bonjour.java - Exécution :
java Bonjour Alice Bob - Sortie :
b. Depuis IntelliJ IDEA¶
- Ouvrez votre projet et votre fichier Java.
- Cliquez sur le menu déroulant à côté du bouton d’exécution (▶️) et sélectionnez Edit Configurations.
- Dans la fenêtre qui s’ouvre :
- Dans le champ Program arguments, entrez les arguments séparés par des espaces (ex:
Alice Bob). - Cliquez sur OK.
- Lancez le programme avec le bouton d’exécution (▶️).
Exemple :
- Si vous entrez
Alice Bobdans Program arguments,args[0]vaudra"Alice"etargs[1]vaudra"Bob".
6. Exercices pratiques¶
Exercice 1 : Conversion et utilisation des arguments¶
Convertissez le programme suivant en utilisant la nouvelle syntaxe et ajoutez un message personnalisé en fonction du premier argument :
public class Bonjour {
public static void main(String[] args) {
System.out.println("Bonjour à tous !");
}
}
Solution attendue :
void main(String[] args) {
if (args.length > 0) {
System.out.println("Bonjour, " + args[0] + " !");
} else {
System.out.println("Bonjour à tous !");
}
}
Exercice 2 : Calcul de la somme¶
Écrivez un programme qui calcule la somme de deux nombres passés en arguments, en utilisant la nouvelle syntaxe.
Solution attendue :
void main(String[] args) {
if (args.length == 2) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
System.out.println("Somme : " + (a + b));
} else {
System.out.println("Veuillez fournir exactement deux nombres.");
}
}
Exercice 3 : Affichage des arguments¶
Écrivez un programme qui affiche tous les arguments passés, chacun sur une nouvelle ligne.
Solution attendue :
7. Points d’attention¶
- Gestion des erreurs : Toujours vérifier la longueur de
argsavant d’y accéder pour éviter lesArrayIndexOutOfBoundsException. - Conversion des types : Les arguments sont toujours des
String. UtilisezInteger.parseInt(),Double.parseDouble(), etc., pour convertir vers d’autres types. - Espace dans les arguments : Si un argument contient des espaces, entourez-le de guillemets dans le terminal (ex:
"Jean Dupont").
8. Pour aller plus loin¶
- Essayez de modifier les exercices pour qu’ils gèrent des cas d’erreur (ex: arguments non numériques).
- Explorez comment utiliser
argsavec des bouclesforou des streams pour traiter plusieurs arguments. - Consultez la documentation officielle sur les arguments en ligne de commande pour plus de détails.
9. Conclusion¶
La nouvelle syntaxe pour la méthode main simplifie l’écriture de programmes Java, surtout pour les débutants. Le
paramètre String[] args est un outil puissant pour rendre vos programmes interactifs et flexibles. En maîtrisant ces
concepts, vous serez capable de créer des programmes plus dynamiques et adaptables.