IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

exécution d'un programme externe


Sujet :

API standards et tierces Java

  1. #1
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut exécution d'un programme externe
    Bonjour ;
    Dans le but de lancer une application externe par un programme java , j'ai utilser la classe exec.
    Quand j'exécute n'importe qu'elle fichier exécutable sa fonctionne bien comme il faut, par contre quand je lance mon exécutable à partir de du meme programme mon outil de développement m'indique que l'exécution a été terminé mais en réalité je reçois aucun résultat.
    en fait mon exécutable est récupéré d'une complilation d'un programme en c, normalement un double click sur mon exécutable me génére un ensemble de fichier chose qui ne se fait pas quand je le lance à partir de mon programme!!!!
    J'ai essayé de controlé le process c'est mon code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    ************************************************
    package testpack;
    import java.io.*;
    import java.util.* ;
     
    public class tesclas {
     
     
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
     
                           String cmd ;
     
    		cmd = "C:\\bin\\lencod.exe";
     
    		Runtime r = Runtime.getRuntime();
     
    	try {
     
    		  Process p = r.exec(cmd);
    BufferedReader ds = new BufferedReader(new InputStreamReader(p.getInputStream()));
    		  String lineCourante = ds.readLine();
    		  while (lineCourante != null) {
    		  System.out.println(lineCourante);
    		   lineCourante = ds.readLine();
                                 System.out.println("bien ok");
    	                p.waitFor();
     
    		            	}}
     
     catch(Exception e){
     
    System.out.println("erreur d'execution "+ cmd + e.toString());
    		 }
     
    	}}
    ****************************************
    la consol de mon outil me donne comme message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    **********************
    Setting Default Parameters...
    bien ok
    Parsing Configfile encoder.cfg
    bien ok
    ******************
    En réalité mon fichier exécutable récupère ces paramétres d'un fichier de configuration résidant le meme répértoire que mon exé.

    Donc voilà le problème et prière de bien vouloir m'aider.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Un peu de lecture :


    Sinon Recherche


    Ca fait le cinquième sujet sur le même problème depuis hier... et je commence a en avoir "marre" de me répéter...



    a++

  3. #3
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour
    t'enerve pas
    j'ai bien lu ton blog "que je trouve tellement interessant" avant meme de poser le problème...mais le problème est toujour posé parce que mon cas est bien particulier car mon exécutable génére plusieutrs fichiers s'il s'exécute et aussi on exécutable extrait ces paramètres d'un fichier de configuration "un simple fichier texte"....voilà et merci beaucoup "adiGuba" pour l'aide et toutes les information que tu mettes pour nous aider.

  4. #4
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    1) ton waitFor est pour moi mal placé.
    2) Tu lis les flux dans le même Thread --> source d'erreurs.
    --> Commence par appliquer les principes de base du lancement du commandes systèmes ( voir les conseils d'adiGuba ).
    Si le problème persiste quand même, n'hésite pas à demander.

  5. #5
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    merci pour les conseils...en fait je n'ai qu'un seul process je peut meme ne pa utiliser le "waitFor"...à mon avis le problème est au niveau de la rediréction de flux...j'ai essayé de consomer le flux d'entré/sortie ma sans resultat en plus sa me prive du diagnostique d'erreur!!!!!!!!!!!!

  6. #6
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour;
    De retour , mais cette fois pour dire que le problème a été résolu...!!
    Alors pour ceux qui ont le meme problème que le mien une petite explication:

    Les lignes que j'ai cité dans mon programme pour le control du process m'indiquaient que le process ne s'exécute pas parce que mon exécutable trouve pas le fichier de paramètres"fichier de configuration" pour remedier à ce problème il faut lui fournir effectivement le répertoire contenant le fichier contenant les paramètres ou tout simplement le répertoire d'exécution.

    Donc la ligne que j'ai corrigé est comme suit :

    Process p = r.exec("C:\\bin\\lencod.exe",null,new File ("C:\\bin"));

    Pour détailler j'ai mis mon fichier de configuration dans le meme répertoire que mon exécutable et je lui ai indiqué sa par l'argument [new File ("c:\\bin"))], et j'ai eu ma sortie dans le meme répertoire.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution d'un programme externe
    Par morofiler dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2010, 18h29
  2. Exécution d'un programme externe
    Par DSGSLA dans le forum C++
    Réponses: 10
    Dernier message: 21/04/2010, 16h24
  3. Réponses: 7
    Dernier message: 03/12/2009, 17h22
  4. [Système] exécution d'un programme externe
    Par wonderyan dans le forum Langage
    Réponses: 2
    Dernier message: 17/09/2007, 13h40
  5. Réponses: 3
    Dernier message: 06/06/2007, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo