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

Langage Java Discussion :

[Runtime] Lancer (et utiliser) un éditeur de texte


Sujet :

Langage Java

Vue hybride

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8
    Par défaut [Runtime] Lancer (et utiliser) un éditeur de texte
    Bonjour à tous,

    Je cherche une solution pour lancer vi (ou eventuellement un autre éditeur de texte) de manière à modifier un fichier et utiliser ce fichier dans la suite de mon appli.

    Voici le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        Runtime runtime = Runtime.getRuntime();
        Process process;
        String[] cmd = new String[2];
        cmd[0] = "vi";
        cmd[1] = "message.tmp";
        try{
            process = runtime.exec(cmd);
            System.out.println("processus lancé");
            process.waitFor();
        }catch(Exception exc){
          System.out.println("ouverture du processus impossible");
            throw new RuntimeException("Ouverture du processus impossible");
        }
    Apparemment le code "fonctionne" puisque j'ai un processus vi qui se lance, mais je n'ai pas l'interface, en fait mon programme se bloque jusqu'à ce que je fasse Ctrl-C, ce qui a pour effet de fermer mon programme et de fermer le processus vi.

    Il y sûrement quelque chose que je fais mal et/ou que je n'ai pas compris...

    Quelqu'un peut m'aider?

    D'avance merci

    Coeurgan

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Tu veux modifier manuellement le fichier ou a partir de ton programme Java ?
    Car si tu veux le faire automatiquement, inutle de passer par une inferface graphique d'un éditeur de texte, modifie directement le fichier !
    Pour ton code, sache qu'a moins d'avoir un fichier 'vi.exe' dans le même dossier que ton application Java, il te faut donner le chemin complet !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd[0] = "C:\\Program\vi.exe";
    A quoi te sert le "message.tmp" ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 8
    Par défaut
    Merci beaucoup de ton aide.

    Je voudrais modifier manuellement le fichier. Comme par exemple dans SVN (CVS aussi je crois?) il te propose un éditeur pour taper tes commentaires quand tu fais un commit.

    Pour ce qui est du chemin complet, je vais essayer mais apparemment le processus se lance donc il trouve le bon chemin.

    Et message.tmp c'est le fichier que je dois modifier. J'avais aussi essayé directement cmd[0]="vi message.tmp" mais ça fait la même chose.

    Sinon je suis sous linux, je ne sais pas si ça peut changer quelque chose mais c'est pas impossible.

    Je continue à chercher en tous cas.

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut utiliser les méthodes getOutputStream(), getInputStream() et getErrorStream() de ton Process afin de pouvoir manipuler les stdin, stdout et stderr du programme lancé (il ne sont pas associé au clavier/console puisque c'est ton programme).

    Et il faut faire attention au interblocage (lire stdout et stderr depuis des threads séparé)...

    Tu trouveras plus de détail sur le forum (plusieurs sujet existant).

    a++

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 8
    Par défaut
    Merci de cette précision adiGuba, j'ai trouvé un exemple là : http://www.developpez.net/forums/showthread.php?t=52771

    Je n'ai pas le temps de tester tout de suite, mais je vous tiens au courant. Tout ça me semble bien compliqué quand même pour pas grand chose... Mais bon je me coucherai moins bête.

    ++

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

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Si tu arrives à lancer vi depuis java ça m'intéresse ( du moins le vrai vi sous unix, pas une adaptation windaube à la mors-moi le noeud ).
    Sachant que tu ne controles que le flux de sortie et le flux d'entrée, il doit falloir recoder une partie de l'interface graphique ( interface caractère plutot ) de vi lorsque tu lances ça en mode console ?
    Pour exemple, j'utilise des commandes vi en mode batch, mais pour l'avoir en temps réel ... ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    vi <<EOF!
       :1,$s/toto/titi/g
       !wq
    EOF!
    PS c'est un exemple bidon, je fais pas exactement ça en réel

Discussions similaires

  1. Utiliser l'éditeur de texte Scite avec R
    Par Jasmine80 dans le forum R
    Réponses: 4
    Dernier message: 28/05/2015, 12h02
  2. Choix éditeur de texte utilisable depuis une clé usb
    Par capone dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 09/07/2008, 15h17
  3. Quel éditeur de text utiliser pour un forum ?
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/07/2008, 00h07
  4. Réponses: 1
    Dernier message: 06/12/2007, 11h13
  5. Utilisation d'éditeur de texte en ligne
    Par louroulou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 29/08/2007, 16h54

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