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

Java Discussion :

Execution d'un code java 2 fois pour qu'il s'execute parfaitement


Sujet :

Java

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut Execution d'un code java 2 fois pour qu'il s'execute parfaitement
    Bonjour,

    j'ai fait un programme java qui fait la creation d'un fichier texte "abc.txt",
    ensuite, ce code java va utiliser ce fichier pour executer qqs operations.
    Le pb c'est que ce code java s'execute comme le suivant:
    1) Il fait la creation du fichier texte "abc.txt"
    2) Il lance une erreur "fichier not found", lorsqu'il va executer le reste du programme java.
    3) je fait une 2éme compilation et execution le programme fonctionne parfaite ment parce qu'il a trouver le fichier "abc.txt" deja créer lors de la 1er execution.

    Donc, comment je peux corriger ce code ?

    J'espere que je suis claire.
    ET merci d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 73
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Tu peux faire voir le code qui crée le fichier et qui l'exploite en indiquant la ligne ou le programme plante?

    Bon code !
    Soyons réalistes, exigeons l'impossible !

  3. #3
    Membre habitué
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Points : 181
    Points
    181
    Par défaut
    Donnes-nous ton code pour voir ce qui ne va pas.

    Si tu écrit dans le fichier, je pense que tu dois fermer le OutputStream et Ouvrir un InputStream pour le lire.

    Enfin, on verra mieux avec du code!

  4. #4
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Merci pour vous et voila une partie du code:

    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
    /*Executer une commande cmd et creation du fichier abc.txt*/
    	 		String[] cmd = { "cmd.exe", "/C", "dir C:\\> abc.txt" };
    	    	Runtime runtime = Runtime.getRuntime();
    		    final Process process = runtime.exec(cmd);
     
    	 		/* Lire le fichier abc.txt --> il ya une erreur d'execution lors de la 1er execution:fichier abc.txt not found*/
     
    			BufferedReader reader = null;
    			reader = new BufferedReader(new FileReader("abc.txt"));
    			String ligne;
    			String chaine = "";
    			while ((ligne = reader.readLine()) != null)
    				{
    					System.out.println(ligne);
    					chaine = chaine + ligne;
     
    				}
    Lors d'une 2eme compilation et execution du programme java il n'y a pas d'erreur car le fichier abc.txt est deja cré lors de la 1er execution.

    Merci encore.

  5. #5
    Membre habitué
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Points : 181
    Points
    181
    Par défaut
    Je ne sais pas pourquoi ça ne fonctionne pas mais j'ai 2 questions:

    Pourquoi passer par abc.txt et ne pas lire la sortie du process comme ca:
    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
     
    		try {
    			BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    			String ligne = "";
    			try {
    				while((ligne = reader.readLine()) != null) {
    					// Traitement du flux de sortie de l'application si besoin est
                                           System.out.println(ligne);
    					chaine = chaine + ligne;
    				}
    			} finally {
    				reader.close();
    			}
    		} catch(IOException ioe) {
    			ioe.printStackTrace();
    		}
    Mais aussi, si la problématique est de lister un dossier java le fait très bien avec File.list()

    Cf: http://java.sun.com/j2se/1.4.2/docs/...ile.html#list()

  6. #6
    Rédacteur/Modérateur
    Avatar de regis1512
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mai 2008
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 264
    Points : 7 999
    Points
    7 999
    Par défaut
    Bonjour,

    C'est normal que ton fichier ne soit pas créer la première fois.
    Il faut attendre que le process soit fini :

    Tu peux attendre cette fin grace à

    Process#waitFor()
    Pourquoi cet avatar ? Parce que j'aime bien le tableau "Le Fils de l'homme" de Magritte.
    Mes contributions sur developpez.com

  7. #7
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Merci beaucoup ,

    S' il vous plais et s' il n'y a pas de derangement vous pouvez m'expliquez un peu comment je peux attendre la fin grace à:
    Process#waitFor()
    Et comment je peux la lancer dans mon programme java.

    car j'ai pas compris bien à partir du lien que vous avez me l'envoyez.
    Merci encore .

  8. #8
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Merci beaucoup pour vous ,

    j'ai arrivé à l'executer avec succé:
    process.waitFor();


    Merci encore

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

Discussions similaires

  1. Lancer un code java pour s'executer sur un serveur
    Par marouene_ dans le forum Général Java
    Réponses: 6
    Dernier message: 24/03/2011, 20h23
  2. exécuter un code java plusieurs fois
    Par ramijrad dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 20/09/2010, 12h20
  3. aides pour recuperer valeur et executer suite du code
    Par jah83 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 27/06/2010, 22h14
  4. Execution compilation en code Java
    Par Gaelou dans le forum Langage
    Réponses: 10
    Dernier message: 25/05/2009, 19h32
  5. Réponses: 3
    Dernier message: 19/02/2009, 11h31

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