Je souhaite déclencher une ligne de commande exécutable avec les paramètres saisis dans l'interface graphique.Lancement d'un outil de ligne de commande à partir de l'interface graphique
Process
classe peut être utilisée à la fourchette mon processus de ligne de commande nécessaire à l'application Java, et j'ai utilisé la méthode getInputStream()
de Process
objet pour obtenir le résultat et se il apparaît dans l'interface graphique.
private void confirmActionPerformed(java.awt.event.ActionEvent evt) {
String output;
try {
Process p = Runtime.getRuntime().exec("my command line exe with parameters");
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((output = stdInput.readLine()) != null) {
TextField.setText(TextField.getText()+output+"\n");
}
} catch (IOException e) {
System.out.println("Exception in Process");
e.printStackTrace();
}
}
Ceci est mon code qui est un écouteur d'événement d'un événement bouton enfoncé et je tenté d'afficher le résultat du processus dans le champ texte (composant swing java). Ce processus fonctionne en fait assez longtemps et montre des statistiques au moment où il s'exécute en ligne de commande, mais quand je l'essaie en GUI avec le code ci-dessus, je reçois le résultat consolidé entier seulement après le Fin de processus en cours. Je ne reçois pas le TextField
mis à jour au fur et à mesure de l'exécution.
Quelle serait la cause de ce problème?