<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://forum.ubuntu-fr.org/extern.php?action=feed&amp;tid=1121051&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Forum Ubuntu-fr.org / [JAVA] Gestion des arguments lors de l’exécution]]></title>
		<link>http://forum.ubuntu-fr.org/viewtopic.php?id=1121051</link>
		<description><![CDATA[Les sujets les plus récents dans [JAVA] Gestion des arguments lors de l’exécution.]]></description>
		<lastBuildDate>Sat, 15 Dec 2012 20:13:34 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11883791#p11883791</link>
			<description><![CDATA[<p>Bonsoir Claudius,<br />Je te remercie de tes explications et de ton code ! Ayant d&#039;autres travaux à effectuer en parallèle j&#039;ai mis de côté un peu mon projet.</p><p>Mais je te ferai signe dès que j&#039;ai des questions <img src="http://forum.ubuntu-fr.org/img/smilies/wink.png" width="15" height="15" alt="wink" /><br />Merci encore !</p><p>Xun</p>]]></description>
			<author><![CDATA[dummy@example.com (Xun)]]></author>
			<pubDate>Sat, 15 Dec 2012 20:13:34 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11883791#p11883791</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11809171#p11809171</link>
			<description><![CDATA[<p>Bonsoir Xun,</p><p>Patience, le problème que tu soumets n&#039;est pas immédiat pour qui n&#039;a pas pratiqué le getopt() du Langage C ;-)<br />Je pense que tu as compris le principe (je me permets de copier en fin de réponse une variante de ton programme avec le résultat)</p><p>Sinon s&#039;agissant des &quot;::&quot;, sauf erreur de ma part la syntaxe du 3rd argument de &quot;new Getopt(...) peut être réduit à &quot;sm:c:h&quot; dans le cas qui t&#039;intéresses. Le &#039;:&#039; derrière la lettre de l&#039;option (courte) indique qu&#039;une valeur est attendue (eg -m et -c ou respectivement --parametre2 et --parametre3 à l&#039;inverse de -s et -h qui n&#039;ont pas de valeurs qui suivent et attendues).</p><p>Maintenant, après la collecte des options [et leur(s) argument(s)], un traitement de cohérence est à faire pour chaque option (double définition, valeur absente ou invalide, etc.). Le new Getopt(...) + switch/case que je n&#039;ai pas développé ... désolé.</p><div class="codebox"><pre class="vscroll"><code>package Modules;

import gnu.getopt.Getopt;
import gnu.getopt.LongOpt;

public class TestGetOpt {

	public static void getArgs(String args[]) {

		LongOpt[] longopts = new LongOpt[4];
		StringBuffer sb = new StringBuffer();

		longopts[0] = new LongOpt(&quot;parametre1&quot;, LongOpt.NO_ARGUMENT, null, &#039;s&#039;);
		longopts[1] = new LongOpt(&quot;parametre2&quot;, LongOpt.OPTIONAL_ARGUMENT, null, &#039;m&#039;);
		longopts[2] = new LongOpt(&quot;parametre3&quot;, LongOpt.OPTIONAL_ARGUMENT, sb, &#039;c&#039;); 
		longopts[3] = new LongOpt(&quot;parametre4&quot;, LongOpt.NO_ARGUMENT, null, &#039;h&#039;);
		//Getopt g = new Getopt(&quot;Hosto&quot;, args, &quot;-:s::m:a::c::h::b&quot;,longopts);
		Getopt g = new Getopt(&quot;Hosto&quot;, args, &quot;sm:c:h&quot;,longopts);
		int c;
		String arg;
		while((c=g.getopt())!=-1){
			switch(c){
			case &#039;s&#039;:
				arg = g.getOptarg();
				System.err.println(&quot;-s or --parametre1 (without value: value [&quot; + arg +&quot;])&quot;);
				break;
			case &#039;m&#039;:
				arg=g.getOptarg();
				System.err.println(&quot;-m or --parametre2 with [&quot; + arg + &quot;] value&quot;);
				//System.exit(0);
				break;
    		
			case &#039;c&#039;:
				arg=g.getOptarg();
				System.err.println(&quot;-c or --parametre3 with [&quot; + arg + &quot;] value&quot;);
				//System.exit(0);
				break;
    		
			case &#039;h&#039;:
				arg=g.getOptarg();
				System.err.println(&quot;-h only (without value) with [&quot; + arg + &quot;] value&quot;);
				//System.exit(0);
				break;
    		
			default:
				System.err.println(&quot;getopt() returned &quot;+c);
				//help();
				break;
			}
		}
    }

	public static void main(String args[]) throws Exception {

		System.out.println(&quot;Test with:&quot;);
		for (String arg: args) {
			System.out.println(&quot;   [&quot; + arg + &quot;]&quot;);
		}
		
		getArgs(args);
		
	}
}


Résultat d&#039;un test:

Test with:
   [-h]
   [--parametre1]
   [-m]
   [arg_m]
   [-c]
   [arg_c]
-h only (without value) with [null] value
-s or --parametre1 (without value: value [null])
-m or --parametre2 with [arg_m] value
-c or --parametre3 with [arg_c] value</code></pre></div><br /><p>Cordialement, A+<br />-- <br />Claudius</p>]]></description>
			<author><![CDATA[dummy@example.com (claudius01)]]></author>
			<pubDate>Sun, 09 Dec 2012 19:49:25 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11809171#p11809171</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11787311#p11787311</link>
			<description><![CDATA[<p>Bon alors ...</p><p>En cette fin de soirée, j&#039;arrive à un code de ce genre:</p><div class="codebox"><pre class="vscroll"><code>		    LongOpt[] longopts = new LongOpt[4];
		    StringBuffer sb = new StringBuffer();

		    longopts[0] = new LongOpt(&quot;parametre1&quot;, LongOpt.NO_ARGUMENT, null, &#039;s&#039;);
		    longopts[1] = new LongOpt(&quot;parametre2&quot;, LongOpt.OPTIONAL_ARGUMENT, null, &#039;m&#039;);
		    longopts[2] = new LongOpt(&quot;parametre3&quot;, LongOpt.OPTIONAL_ARGUMENT, sb, &#039;c&#039;); 
		    longopts[3] = new LongOpt(&quot;parametre4&quot;, LongOpt.NO_ARGUMENT, null, &#039;h&#039;);
		    Getopt g = new Getopt(&quot;Hosto&quot;, args, &quot;-:s::m:a::c::h::b&quot;,longopts);
		    int c;
		    String arg;
		    while((c=g.getopt())!=-1){
		    	switch(c){
		    	case &#039;s&#039;:
		    		arg = g.getOptarg();
		    		System.err.println(&quot;parametre1&quot;);
		    		break;
		    	case &#039;m&#039;:
		    		arg=g.getOptarg();
		    		System.err.println(&quot;parametre2&quot;);
		    		//System.exit(0);
		    		break;
		    		
		    	case &#039;c&#039;:
		    		arg=g.getOptarg();
		    		System.err.println(&quot;parametre4&quot;);
		    		//System.exit(0);
		    		break;
		    		
		    	default:
		    		System.err.println(&quot;getopt() returned &quot;+c);
		    		//help();
		    		break;
		    	}
		    }</code></pre></div><p>Je cherche vraiment hein! J&#039;essaie de bien lire la doc, mais elle m&#039;est vraiment difficile et je commence à être dégouté de ce projet. Cette gestion d&#039;argument n&#039;est qu&#039;en fait qu&#039;un plus puisque celle-ci a déjà été faite avec beaucoup (beaucoup...trop!) de if/else et c&#039;est juste histoire d&#039;avoir une meilleure/plus belle gestion des arguments, ainsi que pour de nouvelles connaissances, que je fais cela.</p>]]></description>
			<author><![CDATA[dummy@example.com (Xun)]]></author>
			<pubDate>Fri, 07 Dec 2012 20:20:10 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11787311#p11787311</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11784541#p11784541</link>
			<description><![CDATA[<p>C&#039;est exactement ça ! <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>Pour le moment, je suis &quot;bloqué&quot; à la déclaration de getOpt; serais-tu d&#039;accord pour m&#039;aider davantage ?</p><p>Je déclare actuellement ainsi:</p><div class="codebox"><pre><code>Getopt g = new Getopt(&quot;monProgramme&quot;, args, &quot;param1::param2::param3::param4&quot;)</code></pre></div><p> ne sachant pas vraiment à quoi servent les doubles :: comme dans la doc (j&#039;avoue avoir du mal à la comprendre) -- de ce que j&#039;ai compris les &#039;::&#039; servent à séparer &quot;param1&quot; de &quot;param2&quot; etc... ?)</p>]]></description>
			<author><![CDATA[dummy@example.com (Xun)]]></author>
			<pubDate>Fri, 07 Dec 2012 17:01:34 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11784541#p11784541</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11784511#p11784511</link>
			<description><![CDATA[<p>Ok Xun, je comprends mieux, le but est de faire comprendre à getopt (ou autre) le bout d&#039;argument:</p><div class="codebox"><pre><code>-param2[:complement-de-param2-optionnel]</code></pre></div><p>avec &#039;:&#039; signifiant &quot;paramètre optionnel&quot; derrière l&#039;option &#039;param2&#039;</p><br /><p>Cordialement, A+<br />-- <br />Claude</p>]]></description>
			<author><![CDATA[dummy@example.com (claudius01)]]></author>
			<pubDate>Fri, 07 Dec 2012 16:57:01 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11784511#p11784511</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11784371#p11784371</link>
			<description><![CDATA[<p>Bonsoir Claude,</p><p>Je ne m&#039;étais pas préoccupé de getOpt parce que je n&#039;en avais pas compris son fonctionnement ... <br />Mais je l&#039;ai désormais importé par Eclipse et je pense que je peux commencer à l&#039;utiliser.</p><p>En fait, quand je dis </p><div class="codebox"><pre><code> fichier1 [-param1 -param2[:complement param2 optionnel] ] [-param3 -param4] </code></pre></div><p>je veux signifier</p><div class="codebox"><pre><code> fichier1 [-param1 -param2[:complement-de-param2-optionnel] ] [-param3 -param4] </code></pre></div><p>en voulant dire que ça peut être -param1 -param3 -param4 comme -param2 -param3 -param4 ou encore -param2:qqchose -param3.</p><p>Je suis en train de voir comment coder ces paramètres, merci de ta réponse <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[dummy@example.com (Xun)]]></author>
			<pubDate>Fri, 07 Dec 2012 16:47:43 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11784371#p11784371</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11783761#p11783761</link>
			<description><![CDATA[<p>Bonjour Xun,</p><p>- Désolé de ne pas répondre sur <a href="http://commons.apache.org/cli/api-1.2/org/apache/commons/cli/Options.html">Options() </a>...<br />- J&#039;imagine que c&#039;est la syntaxe &quot;-param2[:complement param2 optionnel]&quot; qui bloque (le reste étant classique)<br />&#160; =&gt; Et mettre entre double guillemets les arguments &quot;complement optionnel&quot; (sans le &#039;:&#039; et sans la répétition &quot;param2&quot;), cela répondrait-il au problème posé, c&#039;est comme cela que je pratique en Langage C pour une liste d&#039;arguments attachés à une option...</p><p>Je te donne le résultat avec le package <a href="http://www.gnu.org/software/gnuprologjava/api/gnu/getopt/Getopt.html">java-getopt</a> :</p><div class="codebox"><pre><code>$ java TestGetOpt -H &quot;localhost 8080&quot; -n 1234

2012-12-07 16:38:40,625 INFO  - TestGetOpt.java:39   - TestGetOpt: Starting in progress...
2012-12-07 16:38:40,625 INFO  - TestGetOpt.java:40   - with:
2012-12-07 16:38:40,625 INFO  - TestGetOpt.java:42   -    [-H]
2012-12-07 16:38:40,625 INFO  - TestGetOpt.java:42   -    [localhost 8080]
2012-12-07 16:38:40,640 INFO  - TestGetOpt.java:42   -    [-n]
2012-12-07 16:38:40,640 INFO  - TestGetOpt.java:42   -    [1234]
2012-12-07 16:38:40,640 INFO  - TestGetOpt.java:75   - case &#039;H&#039;: You picked option &#039;H&#039; with argument [localhost 8080]
2012-12-07 16:38:40,640 INFO  - TestGetOpt.java:83   - case &#039;n&#039;: You picked option &#039;n&#039; with argument [1234]
2012-12-07 16:38:40,640 INFO  - TestGetOpt.java:123  - TestGetOpt: Stopped</code></pre></div><p>NB: Je n&#039;ai pas réussi avec la syntaxe que tu souhaites : fichier1 [-param1 -param2[:complement param2 optionnel] ] [-param3 -param4], syntaxe qui me parait lourde avec la répétition du nom de l&#039;option &#039;param2&#039;</p><br /><p>Cordialement, A+<br />-- <br />Claude</p>]]></description>
			<author><![CDATA[dummy@example.com (claudius01)]]></author>
			<pubDate>Fri, 07 Dec 2012 15:54:38 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11783761#p11783761</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11783451#p11783451</link>
			<description><![CDATA[<p>Salut,</p><p>C&#039;est quoi la question du coup?</p>]]></description>
			<author><![CDATA[dummy@example.com (Epehj)]]></author>
			<pubDate>Fri, 07 Dec 2012 15:22:15 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11783451#p11783451</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11782921#p11782921</link>
			<description><![CDATA[<p>up</p>]]></description>
			<author><![CDATA[dummy@example.com (Xun)]]></author>
			<pubDate>Fri, 07 Dec 2012 14:24:20 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11782921#p11782921</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11772901#p11772901</link>
			<description><![CDATA[<p>Bonsoir,</p><p>Je ne comprends pas. <br />J&#039;essaie d&#039;utiliser la classe Options, <a href="http://commons.apache.org/cli/api-1.2/org/apache/commons/cli/Options.html">donc cette classe là</a>; Eclipse me signale pas mal d&#039;erreurs...</p><p>Impossible donc de générer des arguments type </p><div class="codebox"><pre><code>fichier1 [-param1 -param2[:complement param2 optionnel] ] [-param3 -param4] </code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (Xun)]]></author>
			<pubDate>Thu, 06 Dec 2012 16:02:48 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11772901#p11772901</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11687021#p11687021</link>
			<description><![CDATA[<p>Merci beaucoup pour cette précision, ça ressemble grandement à ce que j&#039;avais vu <img src="http://forum.ubuntu-fr.org/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /></p><p>Merci à tous <img src="http://forum.ubuntu-fr.org/img/smilies/wink.png" width="15" height="15" alt="wink" /></p>]]></description>
			<author><![CDATA[dummy@example.com (Xun)]]></author>
			<pubDate>Fri, 30 Nov 2012 06:06:51 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11687021#p11687021</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11677001#p11677001</link>
			<description><![CDATA[<p>Bonjour,</p><p>J&#039;utilise personnellement le package <a href="http://www.gnu.org/software/gnuprologjava/api/gnu/getopt/Getopt.html">java-getopt</a> qui propose un accès aux arguments comme en Langage C (sans if / else et arguments définis dans n&#039;importe quel ordre ;-) et téléchargeable <a href="http://www.java2s.com/Code/Jar/j/Downloadjavagetopt1013jar.htm">ici</a></p><br /><p>Cordialement, A+<br />-- <br />Claudius</p>]]></description>
			<author><![CDATA[dummy@example.com (claudius01)]]></author>
			<pubDate>Thu, 29 Nov 2012 10:23:12 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11677001#p11677001</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11675341#p11675341</link>
			<description><![CDATA[<p>Bah y&#039;a : <a href="http://commons.apache.org/cli/usage.html">http://commons.apache.org/cli/usage.html</a> qui rend l&#039;écriture un peu plus jolie,... mais ça fini quand même en suite de ifs.</p>]]></description>
			<author><![CDATA[dummy@example.com (ssdg)]]></author>
			<pubDate>Thu, 29 Nov 2012 06:50:26 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11675341#p11675341</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11675271#p11675271</link>
			<description><![CDATA[<p>Donc il n&#039;y a pas de &quot;jolies&quot; manières ou de façons magiques pour gérer ça ? Venant de java ça m&#039;étonne en fait ... On nous l&#039;a tellement vendu comme étant un langage pensé que je m&#039;attendais à une méthode élaborée.</p><p>Merci de cette réponse rapide !</p>]]></description>
			<author><![CDATA[dummy@example.com (Xun)]]></author>
			<pubDate>Thu, 29 Nov 2012 06:23:45 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11675271#p11675271</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [JAVA] Gestion des arguments lors de l’exécution]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11673521#p11673521</link>
			<description><![CDATA[<p>Quelque soit le langage, les arguments sont toujours traités de la même manière, soit des (if then else) en cascade, soit des (switch, case, break).</p><p>C&#039;est pas beau, mais c&#039;est béton et surtout plus rapide que tu le penses.</p><p>EDIT: Après pour des cas comme le tien (avec une interdiction), ça peut être un mix des deux solutions.</p>]]></description>
			<author><![CDATA[dummy@example.com (Maisondouf)]]></author>
			<pubDate>Wed, 28 Nov 2012 23:39:54 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11673521#p11673521</guid>
		</item>
	</channel>
</rss>
