bonjour,
j'essai desesperement de lancer une appli exe a partir de mon programme java. J'ai deja fait ca une fois et ca avait marché nickel.
J'ai donc repris le meme modele.
Mon probleme ici est :
Je dois lancer une appli exe a partir du java. cette appli a besoin d'un fichier d'entrée et doit me generer 3 fichiers resultats.
J'ai donc fait comme ca :Le probleme est que ca reste bloqué sur le waitFor (le processus de mon appli est toujours actif dans le gestionnaire des taches)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try { Process p = null; Runtime r = Runtime.getRuntime(); p = r.exec("C:\\appli.exe < fichierentree.txt" ); int x = p.waitFor(); } catch(Exception appli){ appli.printStackTrace(); }
Je n'ai pas mes 3 fichiers de sorties...
Si j'enleve le waitFor, l'appli est libéré mais je n'ai pas mes 3 fichiers de sorties
Si je fais la meme chose sous dos avec le meme fichier d'entrée ca marche nickel, j'ai mes 3 fichiers de sorties.
De plus sous dos, cette appli renvoie pas mal de ligne montrant le deroulement du traitement. j'ai donc essayé de recuperer ces lignes dans mon prog java de cette facon :Ca reste toujours bloqué sur le waitFor (normal) mais rien ne s'affiche.
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 try { Process p = null; Runtime r = Runtime.getRuntime(); p = r.exec("C:\\appli.exe < fichierentree.txt" ); InputStream i_stream=p.getInputStream(); InputStreamReader reader=new InputStreamReader(i_stream); String res=""; BufferedReader bf_reader= new BufferedReader(reader); while (bf_reader.ready()) { res+=bf_reader.readLine()+"\n"; } System.out.println("resultat :" +res); int x = p.waitFor(); } catch(Exception appli){ appli.printStackTrace(); }
J'ai essayé de lancer WORD en remplacant le chemin de mon appli par celui de word et ca marche au poil.
Si quelqu'un pouvait m'aider...
Merci par avance de vos reponses
Edenyorke
Partager