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.exec] Java et mpi


Sujet :

Langage Java

  1. #1
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut [Runtime.exec] Java et mpi
    Bonjour

    Sur un cluster disposant de mpi (pour de la parallélisation), je veux lancer l'environnement via une classe Java.
    Voici la méthode que j'ai écrit :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    private int lamboot(){
    		String cmd = "lamboot -ssi boot_rsh_agent 'ssh -x' -ssi rsh_agent 'ssh -x' lamhosts";
    		System.out.println(cmd);
    		try{
    			java.lang.Process process = Runtime.getRuntime().exec(cmd);
    			process.waitFor();
    			this.error = new java.io.BufferedReader(new java.io.InputStreamReader(process.getErrorStream()));
    			this.stdout = new java.io.BufferedReader(new java.io.InputStreamReader(process.getInputStream()));
     
    			Thread tout = new Thread(){
    				public void run(){
    					String out = "";
    					try{
    						while((out = mpiBLAST.this.stdout.readLine())!=null){
    							System.out.println(out);
    						}
    					}
    					catch(java.io.IOException ioe){
    						return;
    					}
    				}
    			};
    			tout.start();
     
    			Thread terr = new Thread(){
    				public void run(){
    					String err = "";
    					try{
    						while((err = mpiBLAST.this.error.readLine())!=null){
    							System.err.println(err);
    						}
    					}
    					catch(java.io.IOException ioe){
    						return;
    					}
    				}
    			};
    			terr.start();
    		}
    		catch(IOException ioe){
    			return 1;
    		}
    		catch(InterruptedException ie){
    			return 1;
    		}
    		return 0;
    	}
    Ok, la méthode n'est pas supère mais là n'est pas le problème.
    Mon souci est que lorsque j'invoque le exec, le process lamboot me lance l'aide, synonyme d'une erreur. Pourtant, si je tape la même ligne en shell, tout se passe bien. Y a t'il un détail qui m'a échappé ?

    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Je penche pour un problème au niveau des espaces dans les arguments de ta ligne de commande.
    Quand tu as des espaces dans les arguments de ta ligne de commande, il est préférable d'utiliser la méthode exec(String[]).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String[] cmd = { "lamboot", 
                     "-ssi", 
                     "boot_rsh_agent",  
                     "ssh -x", 
                     "-ssi",  
                     "rsh_agent",  
                     "ssh -x", "lamhosts" };
    java.lang.Process process = Runtime.getRuntime().exec(cmd);
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut
    Oki

    A essayer ce soir sinon lundi si je n'ai plus de force
    Merci de ta réponse.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  4. #4
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 885
    Par défaut
    A marche !
    Merci le y@m's

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

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

Discussions similaires

  1. [RUNTIME][EXEC]
    Par adrien1977 dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 30/09/2009, 16h28
  2. [Runtime][exec]Récupérer les stdout ET stderr
    Par yveslamand dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 20/05/2005, 13h37
  3. [Runtime]exec() avec une commande paramétrée
    Par nice dans le forum Général Java
    Réponses: 9
    Dernier message: 12/05/2005, 13h15
  4. [Servlet][Windows][System call]Runtime.exec
    Par lucho31 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 18/01/2005, 11h55
  5. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54

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