|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
GETOPTIONS : RÉCUPÈRE LES ARGUMENTS EN LIGNE DE COMMANDE
Information sur la source
Description
Ce petit bout de code permet d'analyser simplement les arguments passés en paramètre à la fonction 'main' d'une application.
L'objet GetOpts implémente les méthodes des interfaces Iteratior et Enumeration et permet donc de :
- récupérer l'argument associé à une option.
- tester si un argument était obligatoire ou non pour l'option.
- tester si il y a au moins une option trouvée.
- etc...
seule bémol, le code ne gère pour le moment que les options courte...
edit: je viens d'ajouter la gestion des options longues et/ou courte, options courtes collées, arguments collés
PS : Je sais bien qu'il existe des classes (genre d'apache) pour faire ce petit boulot mais bon personnellement j'aime pas vraiment utiliser d'autres classes que celles créés par sun :P
Source
- package org.cs;
-
- import java.util.Enumeration;
-
- import org.cs.getopt.GetOptElement;
- import org.cs.getopt.GetOpts;
- import org.cs.getopt.LongOption;
-
- /**
- *
- * File : org.cs.GetOptsTest.java <br>
- * Description : Classe de test pour l'objet GetOpts<br>
- * @author Twinuts
- */
- public class GetOptsTest {
-
- public static void main(String[] args) {
- // pour switcher sans toucher le code ^^
- boolean short_opt = false;
- Enumeration<GetOptElement> opts = null;
- if(!short_opt) {
- // construction de la liste d'options longues et courtes
- LongOption options [] = new LongOption[] {
- new LongOption("help", 'h', LongOption.REQUIRED_ARGUMENT),
- new LongOption("up", 'u', LongOption.REQUIRED_ARGUMENT),
- new LongOption("plop", 'p', LongOption.REQUIRED_ARGUMENT),
- new LongOption('f', LongOption.NO_ARGUMENT),
- new LongOption("j", 'z', LongOption.REQUIRED_ARGUMENT)
- };
- // création de l'objet GetOpts
- opts = new GetOpts(args, options);
- } else
- // création de l'objet GetOpts en lui passant la liste d'options courtes
- // ici le ':' signifit que l'option attend un argument
- opts = new GetOpts(args, "h:u:p:g:1:fj:");
- // liste d'options
- while(opts.hasMoreElements()) {
- // récupération de l'option
- GetOptElement e = opts.nextElement();
- // affichage des info
- System.err.println("Short Option : " + e.getShortOption() +
- ", Long Option : " + e.getLongOption() +
- ", Argument : " + e.getArgument() + ", Required : " + e.isRequiredArgument());
- }
- }
- }
package org.cs;
import java.util.Enumeration;
import org.cs.getopt.GetOptElement;
import org.cs.getopt.GetOpts;
import org.cs.getopt.LongOption;
/**
*
* File : org.cs.GetOptsTest.java <br>
* Description : Classe de test pour l'objet GetOpts<br>
* @author Twinuts
*/
public class GetOptsTest {
public static void main(String[] args) {
// pour switcher sans toucher le code ^^
boolean short_opt = false;
Enumeration<GetOptElement> opts = null;
if(!short_opt) {
// construction de la liste d'options longues et courtes
LongOption options [] = new LongOption[] {
new LongOption("help", 'h', LongOption.REQUIRED_ARGUMENT),
new LongOption("up", 'u', LongOption.REQUIRED_ARGUMENT),
new LongOption("plop", 'p', LongOption.REQUIRED_ARGUMENT),
new LongOption('f', LongOption.NO_ARGUMENT),
new LongOption("j", 'z', LongOption.REQUIRED_ARGUMENT)
};
// création de l'objet GetOpts
opts = new GetOpts(args, options);
} else
// création de l'objet GetOpts en lui passant la liste d'options courtes
// ici le ':' signifit que l'option attend un argument
opts = new GetOpts(args, "h:u:p:g:1:fj:");
// liste d'options
while(opts.hasMoreElements()) {
// récupération de l'option
GetOptElement e = opts.nextElement();
// affichage des info
System.err.println("Short Option : " + e.getShortOption() +
", Long Option : " + e.getLongOption() +
", Argument : " + e.getArgument() + ", Required : " + e.isRequiredArgument());
}
}
}
Conclusion
Voir la capture pour l'exemple d'utilisation.
Historique
- 22 avril 2007 21:21:38 :
- mauvais zip :P
- 22 avril 2007 21:27:39 :
- Les accents ne sont pas passés ...
- 25 juin 2008 19:46:36 :
- refonte du code, ajout de la gestion des options longues et/ou courte, options courtes collées, arguments collés, etc... bref nouvelle version
- 25 juin 2008 20:00:17 :
- pb image
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
java, JNI et DLL [ par Milie ]
Bonjour, je vous écris pour un pb de chargement de DLL. J'ai déja fait un tutorial avec JNI de type HelloWorld mais j'ai à present besoin d'intergrer
HELP ME Boucle dans main qui marche pas !!! [ par darktonight ]
Bon j'ai un gros probleme que je n'explique pas, j'ai une classe de cette forme , c'est un parser SAX qui doit lancer un prgramme à chaque fois qu'ell
main non trouvable [ par naji222 ]
bonjour en executant un script propore à un logiciel PENEMED avec le contenu suivant#!/bin/sh. ../../config/sethome.sh${JAVA_HOME}/bin/java -classpath
Problème de compilation avec javac.Main.compile [ par Kindasch ]
Salut les gensJ'essaye de compiler un fichier dans une application et il y a une erreur:the method compile from com.sun.javac.Main is not static ????
Type STATIC (n°2) [ par BSide ]
Bonsoir,j'ai un problème de compréhension du caractère "static" d'une variable ou d'une méthode. Je ne comprends pas vraiment à quoi ça sert. En quoi
comment déployer une applet via un fichier jnlp [ par ourka631 ]
Bonjour,Je vous demande comment on peut déployer une applet, c'est à dire l'exécuter sur un poste client à partir d'un fichier JNLP qui lance le java
C'est quoi pour une erreur ? [ par oullafff ]
Voici le message qu'il me vient... après avoir réussi à passer la compilation, je lance l'application et:java.lang.NoSuchMethodError: mainException in
Exception in thread "main" java.lang.noclassDefFoundError: [ par zzt6p2 ]
Salut à tous,Je suis novice je viens d'installer JDK 1.4j'ai configurer le pathen mode command sous windowsje compil mon fichier text avec javacj'obti
Erreur Permission J2ME [ par hichame_elkhalfi ]
quand je veut executer une application J2ME ya un erreur qui survient, je vous donne ce qu'il me sort//DEBUTProject "UIDemo" loadedRunning with storag
Coups de main pour un débutant [ par mockmock ]
Bonjour à tous,J'ai trouvé un petit programme Java fait de trois classes sur JavaFR.com. Il s'agit d'un programme de gestion de comptes bancaires. Cel
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|