Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/08/2007, 16h14   #1
Invité de passage
 
Inscription : août 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 13
Points : 3
Points : 3
Par défaut JAVA: arguments avec runtime ne marche pas

bonjour, j'ai un probleme avec mon application que je expose ici :
je lance une application externe avec runtime.exec() et je donne les arguments de l'application. deux type d'arguments demandé :
1- avec 3 arguments comme ça:
(nom de l'application)(option) (fichier d'entrée) (fichier de sortie)
donc s'il trouve un nom de fichier de sortie il execute une partie
Code :
1
2
3
4
5
6
7
8
9
10
11
 
String[] T = {
		            "NPI.exe",
		            "-c",
                            "entree.txt",
                            "sortie.txt"
		        };
 
		   try {
	    	   Process process = Runtime.getRuntime().exec(T);
	    	   BufferedReader ds = new BufferedReader(new InputStreamReader(process.getInputStream()));
2- avec 3 arguments comme ça:
(nom de l'application)(option) (fichier d'entrée) ('une commande')

s'il trouve une ccommande il execute l'autre partie

Code :
1
2
3
4
5
6
7
8
9
10
11
String[] T = {
		            "NPI.exe",
		            "-c",
                            "entree.txt",
                            " \'maComande\' "
		        };
		   
		   try {
	    	   Process process = Runtime.getRuntime().exec(T);
	    	   BufferedReader ds = new BufferedReader(new InputStreamReader(process.getInputStream()));
dans le premier cas ça se lance et donne les resultats et dans le deuxieme ça marche pas !!

sachant que l'application NPI.exe lorsque je la lance toute seule (sans l'appler par mon programme java) marche dans les deux cas.

merci pour votre aide
aweqqas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 10h34   #2
Invité de passage
 
Inscription : juillet 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 1
Points : 1
Points : 1
Bonjour aweqqas,

désolé je n'ai pas vraiment une solution à te proposer. Mais je tombe sur le même problème avec ma classe Java qui exécute des commande linux et je suppose que la source d'erreur sont les symboles \' \'. En faite, ma classe Java passe des commande au système linux pour lancer le lecteur multimédia vlc qui compresse un fichier vidéo. Voici une partie du code:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
String commands[] = {"vlc", "/home/…/Camera1/StopFluide1_1.mpg", 
":sout=\"#transcode{vcodec=mp4v,vb=16,scale=1}:duplicate{dst=std{access=file,mux=ts,dst=\"/home/bobby/.../Camera1/Bas/StopFluide1_1Bas.mpg\"}}\"", 
"vlc:quit"
};
 
              Runtime r = Runtime.getRuntime();
              Process p = r.exec(commands);
 
              System.out.println(Arrays.toString(commands));
...
Quand je lance ce code, je reçois un message de vlc, disant qu’il lui manque des paramètres d'entré. Par contre, si j'enlève le deuxième argument de mon tableau, vlc se lance sans problème. En plus, si je tape ces commandes directement dans la console de Linux, ça fonctionne aussi. J'ai aussi testé cette classe sur windows et ça lance vlc sans problème. C'est pourquoi je suppose que les symbole \" \" sont mal interprétés par linux. Mais je ne sais pas pourquoi et comment l'éviter. Peut-être quelqu'un d'autre dans ce forum a une idée?

Merci en avance.

Hochhaar
Hochhaar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 08h11   #3
Invité de passage
 
Inscription : août 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 13
Points : 3
Points : 3
Effectivement j'ai pensé moi aussi que \' \' cause un problème du moment que ça marche autrement mais j'ai vraiment tout essayé mais sans solution, en tout cas une proposition de quelqu'un est la bienvenue
aweqqas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 19h17   #4
Invité de passage
 
Inscription : août 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 13
Points : 3
Points : 3
enfin j'ai trouvé la solution, peut etre c'est pas la meilleure mais l'essentiel que ça marche:

dans la commande j'ai remplacé ça :
Code :
1
2
3
4
5
6
String[] T = {
		            "NPI.exe",
		            "-c",
                            "entree.txt",
                            "'cmde'"
		        };
par :
Code :
1
2
String[] T = {"/bin/sh", "-c",  "NPI.exe -c entree.txt 'cmde'"
		        };
merci à tous pour votre aide
aweqqas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h10.


 
 
 
 
Partenaires

Hébergement Web