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

API standards et tierces Java Discussion :

[débutant] executer un script R


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 55
    Points : 41
    Points
    41
    Par défaut [débutant] executer un script R
    bonjour,

    je possède un script R, que je souhaiterais pouvoir lancer à partir d'un programme java. Pour cela, j'utilise la synthaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try{
            Process p = Runtime.getRuntime().exec("R BATCH monScript.R");
            p.waitFor();
    }catch (IOException ioe){
            System.out.println("IOException");
    }catch (InterruptedException ie){
             System.out.println("InterruptedException");
    }
    Lorsque je lance mon script R directement dans ma console, il fonctionne correctement. Par contre, si je le lance à partir de mon programme java, ce dernier s'execute completement sans générer d'erreur, par contre je n'ai pas les résultats attendus de mon script R, présumant que celui-ci n'est pas executé.

    Je n'arrive pas à comprendre d'ou peut venir mon problème.
    merci d'avance pour votre aide

  2. #2
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Est ce que les droits sont les mêmes pour l'execution dans la console et dans ton programme Java?
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  3. #3
    Membre averti Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Points : 331
    Points
    331
    Par défaut
    Remarque :
    la methode waitfor ne fonctionne pas bien,voir pas du tout sur certain OS.

    Question ?
    C est quoi ton OS ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Je ne connais pas le script R. Mais j'en connais assez sur la classe Process.

    Quand on utilise cette classe, il faut se poser 3 questions concernat le sous-processus créé:

    1) Le sous-processus lit-il ces données depuis son entrée standard? Si oui, comment les lui fournir afin qu'il ne bloque pas sur son tampon d'entrée.
    Il préférable si on a le choix de passer les paramètres d'entrée par les arguments ou via un fichier.

    2) Le sous-processus peut-il générer un flux sur sa sortie d'erreur standard? Si oui, comment la capturer en fin de ne pas bloquer le sous-processur sur son tampon de sortie d'erreur.

    3) Le sous-processus peut-il générer un flux sur sa sortie standard? Si oui, comment la capturer en fin de ne pas bloquer le sous-processus sur son tampon de sortie.

    Si une erreur survient dans ton sous-processus, aucune exception ne sera levée. La méthode waitFor attend indéfiniment la terminaison du sous-processus. Elle retourne le "exit status" du sous-processus.
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    je vous remercie pour vos réponses.

    Cependant et depuis seulement aujourd'hui, l'utilisation de java vient d'etre abandonné pour mon outil, celui-ci devant dans peu de temps ré-écrit sous un autre langage.

    Je m'excuse de vous avoir demander de l'aide pour rien... promis, c'était pas voulu.

    Je tiens juste à signaler une chose concernant ce bout de code, c'est qu'il fonctionnait très bien il y a qq temps, mais sur un linux - mandrake 10.0.
    Je suis récement passé sous Debian sarge 3.1 et c'est depuis ce moment là que les pb ont commencé peut etre la remarque soulignée par magnus2005 correspond à mon problème...


    quoi qu'il en soit, je vous remercie une fois de plus pour vos efforts et m'excuse encore de vous avoir dérangé pour rien.

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

Discussions similaires

  1. [débutant] execution d'un script à l'ouverture
    Par nicekiller dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/04/2009, 19h51
  2. comment executer un script perl svp?
    Par nico72 dans le forum Langage
    Réponses: 8
    Dernier message: 13/07/2005, 09h51
  3. Execution de script
    Par IADJOFOGUE dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/10/2004, 19h22
  4. Réponses: 4
    Dernier message: 16/07/2004, 09h16
  5. [DEBUTANT]Comment executer un script sql
    Par peaceinpal dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/03/2004, 08h44

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