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

avec Java Discussion :

lancer un programme et l'utiliser en ligne de commande


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Par défaut lancer un programme et l'utiliser en ligne de commande
    Bonjour,

    J'ai un programme JAVA avec une interface graphique.
    J'ai un programme en R (script qui ne demande qu'a etre lancé!)

    Le seul problème c'est que je n'arrive pas à lancer depuis JAVA mon programme et taper une ligne de commande dans ce programme !!

    Sans passer par JAVA, en ligne de commande unix, il me suffit de taper :
    R
    pour lancer mon logiciel et queslques seconde apres (une fois mon logiciel lancé), il me suffit de taper par exemple
    file.create("azerty.txt")
    pour qu'il me crée un fichier "azerty.txt" dans mon dossier.

    Le seul soucis c'est qu'en tapant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String[] command = {"/bin/sh", "-c", "R", "file.create(\"azerty.txt\")"};
    	    	Runtime runtime = Runtime.getRuntime();
    	    	Process process = null;
    	    	process = runtime.exec(command);
    juste dans un main (pour le test), mon fichier n'est pas créé....
    (pourtant la commande se lance bien à priori puisque si je mets des println avant et apres ils s'affichent....


    Donc ma question c'est comment faire pour lancer un logiciel grace à une commande et qu'ensuite, toutes les commandes tapées soient "à l'intérieur" de ce logiciel ???
    J'ai lu qu'il fallait utiliser le getOutputStream() pour avoir le flux d'entrée de l'application mais je ne sais pas m'en servir....
    Est ce que vous auriez un exemple ou une piste...


    Merci par avance

  2. #2
    Membre éprouvé
    Inscrit en
    Novembre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 129
    Par défaut
    Peut etre que ton fichier est crée à un autre endroi ....

    il faut vérifier dans quel répertoire tu te trouve lors de l'exécution de ton script

    le mieu c'est de modifier ton script R en ajoutant quelques instructions

    comme echo $(pwd) : pour savoir ou tu te trouve par exemple.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Par défaut
    Mais juste en tapant les commandes R et file.create() l'une apres l'autre ça va faire comme si j'avais tapé file.create dans le logiciel R ??

    Pourtant j'avais lu qu'il falait utiliser le getOutputStream()... mais je ne sais pas comment m'en servir...

  4. #4
    Membre éprouvé
    Inscrit en
    Novembre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 129
    Par défaut
    le retour de l'execution de ta commande tu peut l'obtenir en faisant
    System.out.println(process.getOutputStream());

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Par défaut
    Si je tape ce que tu me dis, ca m'affiche :

    java.io.BufferedOutputStream@13e8d89

    ....

    Sinon j'ai trouvé comment lancer mon script directement à l'appel du logiciel R.
    Il suffit de taper la commande du style :
    R CMD BATCH mon_script.R

    Mais lorsque j'écris mon programme java commme ceci :
    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
    public class command {
    	public command(){}
     
    	public static void main(String[] args){
    		try{
    		System.out.println("1");
    			String command[] = {"/bin/sh", "-c", "R CMD BATCH test.R"};
    	    	Runtime runtime = Runtime.getRuntime();
    	    	Process process = null;
    	    	process = runtime.exec(command);
    	    	process.getInputStream().close();
    	    	process.getOutputStream().close();
    	    	process.getErrorStream().close();
    	    	System.out.println("2");
     
    		} catch(Exception err) {;}
    	}
    }
    il m'affiche bien 1 et 2 mais ne lance pas le script !!! (dans le script j'ai juste mis pour l'instant de créer un fichier vide).

    J'ai aussi essayé en écrivant la commande comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String command[] = {"/bin/sh", "-c", "R", "CMD", "BATCH", "test.R"};
    mais ça ne fonctionne pas non plus....

    Aidez moi !!!! j'en peu plus...
    Si je n'arrive pas à le lancer, toute mon interface graphique en JAVA ne servira à rien du tout...

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Par défaut
    J'ai TROUVE !!!!
    Lorsque je passe en mode "/bin/sh", la commande R n'est plus reconnue...
    Il suffisait de remmetre tout le path jusqu'à l'application !!

    Merci encore

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

Discussions similaires

  1. Créer un .exe pour utilisation en ligne de commande
    Par Antoun dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 26/01/2007, 13h19
  2. Lancer l'assistant de tache planifiée en ligne de commande
    Par D-ude dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 06/12/2006, 16h49
  3. Utiliser une ligne de commande dans mon programme.
    Par Someonelse dans le forum MFC
    Réponses: 3
    Dernier message: 20/06/2006, 16h11
  4. Utilisation en ligne de commande de php ?
    Par JavaAcro dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 13/03/2006, 12h20
  5. lancer une mdb a partir d'une ligne de commande
    Par dpie dans le forum Access
    Réponses: 5
    Dernier message: 30/11/2004, 15h01

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