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

ANT Java Discussion :

Envoyer un input à un programme externe (ant)


Sujet :

ANT Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 61
    Par défaut Envoyer un input à un programme externe (ant)
    Bonjour,

    Voilà je cherche depuis un moment à lancer mon jar avec une possibilité d'intéraction quand j'appelle mon programme externe.
    Mon jar lance ant avec des paramètres, mais le fait est qu'une balise nommée <input/> dans le script ant, attends que l'utilisateur envoie une touche clavier.

    Est-il possible d'envoyer un input à un programme externe depuis une invite de commande au lancement du jar ?

    J'ai regardé les pistes de System.in, mais je n'avance pas.
    Si quelqu'un avait une piste, merci d'avance !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Par défaut
    Salut

    Je ne suis pas sûr de bien comprendre.
    Si je résume, tu veux passer des arguments à ton jar qui les transmettra ensuite à ant (qui est appelé par ton programme java).
    C'est bien ça ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 61
    Par défaut
    Oui c'est bien ça. Entre autre, je dois pouvoir interagir avec le script ant.

    J'ai passé un outputstream pour lorsqu'un utilisateur rentre quelque chose, que cela soit pris en compte mais une fois l'entrée saisie et envoyé au programme externe, mon thread a l'air d'attendre quelque chose.

    Voici le bout de code correspondant :
    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
     
    new Thread() {
    			public void run() {
     
    				final byte[] b = new byte[1];
     
    				BufferedOutputStream out = new BufferedOutputStream(p
    						.getOutputStream());
     
    				try {
    						while(System.in.read(b) != 0){							
    							out.write(b);
    							out.flush();
    						}
     
     
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} finally {
    					try {
    						out.close();
    					} catch (IOException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    				}
    			}
     
    		}.start();

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Par défaut
    T'as essayé en envoyant le caractère end of file ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 61
    Par défaut
    Je pense que je suis un peu perdu dans ce que je fais.

    En fait, dans le cas où le script ant demande plusieurs input, mon bout de code (bancale j'avoue) permet d'entrer plusieurs input car le flux de sortie ne sera jamais fermé. Le script pourra continuer mais le flux tjs en attente d'être fermé.

    Si je rentre comme tu dis un caractère end of file, je pense que l'exécution de mon jar s'arrêterait et mon script qui attends les input obtiendront une valeur null.

    Il y a une logique qui doit me manquer dans tout ça

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Par défaut
    Peut être qu'avec plus de détails on pourra t'aider.
    Comme un exemple d'exécution, pour voir les intéractions entre ton programme java et le script ant (et les valeurs dont il a besoin en input).

    Sinon, je vois deux possibilités a priori:
    1) récupérer toutes les valeurs nécessaire à ant au début du programme et les lui transmettre au moment voulu (je ne sais pas ce que ça vaut, je n'ai jamais utilisé la tâche input)
    2) éditer un fichier properties (après avoir obtenu les valeurs comme dans le premier cas) et modifier le script ant pour qu'il récupère les valeurs depuis ce fichier (comme ca on évite la tâche input)

Discussions similaires

  1. Envoyer des string à un programme externe
    Par darkfrag dans le forum C++
    Réponses: 1
    Dernier message: 26/03/2008, 15h47
  2. Envoyer une variable vers stdin d'un programme externe
    Par ben_cines dans le forum Général Python
    Réponses: 2
    Dernier message: 13/03/2008, 21h08
  3. [Kylix] pb d'appel de programme externe
    Par wizwiz dans le forum EDI
    Réponses: 2
    Dernier message: 27/08/2004, 09h29
  4. workspace_loc, outils externes, Ant
    Par supbobo2004 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 28/06/2004, 17h49
  5. appel programme externe depuis pl/sql
    Par txouki dans le forum PL/SQL
    Réponses: 6
    Dernier message: 11/05/2004, 18h35

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