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

Java Discussion :

passer un parametre de Type Array avec Runtime.exec


Sujet :

Java

  1. #1
    Inactif  
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 53
    Points
    53
    Par défaut passer un parametre de Type Array avec Runtime.exec
    Bonjour a tous.
    S'il vous plait j'ai un soucis et je ne sais pas est ce que c'est possible ou pas!!je veux passer un paramètre de type ArrayList<String>en java.j'ai essayé même de convertir la liste en une chaîne de caractères mais ça ne fonctionne pas.voici mon code :
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    JButton b1= new JButton("Commit");
    							b1.addActionListener(new ActionListener(){
     
    								@Override
    								public void actionPerformed(ActionEvent arg0) {
    									// TODO Auto-generated method stub
     
    							        Process shell = null;
      try {
    	  XMLParser xp2 = new XMLParser()	;
       	NodeList lista2;
       	lista2=xp2.RecupererParam(e.getActionCommand());
     
       	 List<String> urls2 = new ArrayList<String>();
       	  for (int j = 0; j < lista2.getLength(); j++) {
     
       	      urls2.add (lista2.item(j).getTextContent());
     
       	  }
       	 StringBuilder builder = new StringBuilder();
       	for(String s : urls) {
       		char guillemet = '"';
       	    builder.append(guillemet+s+guillemet);
       	   builder.append(",");
     
       	}
       	builder.deleteCharAt (builder.length()-1);
    	String chaine=builder.toString();
    							        	String x1 = "iris.txt";
    							        	String x2 = "out.pdf" ;
    							        	String h=  enstxfs.get(0).getText();
    							            shell = Runtime.getRuntime().exec(new String[] { "C:\\Program Files\\R\\R-3.0.3\\bin\\Rscript.exe",hs,chaine });
    							            InputStream in = shell.getInputStream();
    							            BufferedWriter out=new BufferedWriter(new FileWriter("file.txt"));
    							            int c;
    							            while ((c = in.read()) != -1) {
    							                    out.write((char)c);
    							             }
    							            in.close();
    							            out.flush();
    							            out.close();
     
    							    } catch (Exception e) {
    							                e.printStackTrace();
     
    							         }	
    								}
     
    							});
     
    							JButton b2= new JButton("Cancel");
    							b2.addActionListener(new ActionListener(){
     
    								@Override
    								public void actionPerformed(ActionEvent e) {
    									// TODO Auto-generated method stub
    								System.exit(0);	
    								}
     
    							});
    La variable hs est le chemin vers la source .R
    //Voila mon code en R:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    args = commandArgs(trailingOnly=TRUE)
    df = read.table(args[1], header=TRUE)
    pdf('C:/Users/pc/workspace/Memoire_Monia_Clustering/plots/rplot19.pdf')
    plot(df)
    dev.off()
    et l'autre problème c'est comment utiliser cette liste dans le source .R
    merci d'avance

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut
    D'après ce que je comprends de vos explications et de votre code, vous désirez lancer des scripts écrit avec le langage R à l'aide de l'exécutable windows Rscript.exe (répartition de charge). Personnellement, je ne connais rien à l'équilibrage de charge, et encore moins au langage R. Cependant, si j'interprète votre code vous cherchez à obtenir le lancement via Runtime de la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Promgram Files\R\R-3.0.3\bin\Rscript.exe "chemin complet vers le fichier R" "param1","param2","param3",....
    En tout cas, c'est ce que donnerait votre code, mais pas tel qu'il est représenté ici.
    Vous l'avez certainement retappé à la main dans le post car dans le code de votre post il y a semble t'il 2 erreurs :

    Ligne 12 => Vous invoquez la méthode getActionCommand d'une instance de classe nommée 'e', alors que dans la déclaration de votre implémentation de la méthode actionPerformed votre instance de ActionEvent se nomme 'arg0' ??? A moins que e soit en dehors de ce bloc de code et représente une variable de classe, d'où vient-il ?

    Ligne 14 => vous créez une instance de List nommée urls2, mais en ligne 21 vous utilisez urls ? Je penses qu'il faudrait corriger la ligne 21 en mettant urls2 à la place d'urls. Même si urls existe 'ailleurs', à quoi servirait urls2 dans ce cas ?!

    Quoi qu'il en soit je ne comprends pas votre première question :
    je veux passer un paramètre de type ArrayList<String>en java.
    Pour moi, ça ne veut rien dire ?...
    et :
    j'ai essayé même de convertir la liste en une chaîne de caractères mais ça ne fonctionne pas.
    Qu'est-ce qui ne fonctionne pas ?...

    Pour ce qui est de votre seconde question :
    et l'autre problème c'est comment utiliser cette liste dans le source .R
    Tout dépend de ce que vous voulez en faire et de quelle liste vous parlez...

    Soyez plus précis, s'il y a des message d'erreur, montrez-les, et si vous pouviez me préciser ce que la méthode getActionCommand dans la ligne 12 de votre code renvoie, cela me permettrait de mieux comprendre.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

Discussions similaires

  1. property type array avec parametre out
    Par Magohamoths dans le forum Langage
    Réponses: 1
    Dernier message: 30/07/2014, 15h27
  2. [Artichow] Passer des paramètres à un graphique fait avec Artichow
    Par Contact2012 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/05/2010, 17h44
  3. Réponses: 4
    Dernier message: 15/04/2010, 09h34
  4. Réponses: 5
    Dernier message: 15/01/2008, 17h23
  5. probleme avec runtime exec
    Par john123 dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 17/07/2007, 11h57

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