Java : Executer une commande sous forme de String

Java : Executer une commande sous forme de String - Java - Programmation

Marsh Posté le 07-01-2011 à 20:39:16    

Bonsoir !  
 
Je suis à la recherche d'un fonctionnalité Java assez particulière, n'ayant pas trouvé de réponses à ma question nulle part je viens m'adresser à vous !
 
Je vais tacher d'expliquer tout ca :
 
Supposons une commande java quelconque :
 

Code :
  1. System.out.println() ;


 
Je stocke cette commande dans un String :
 

Code :
  1. String maCommande = "System.out.println()" ;


 
Jusqu'ici rien de bien palpitant, c'est là que ca se complique, j'aimerai trouver une commande Java, ou une fonctionnalité similaire permettant d'exécuter cette commande stockée sous forme de String !
Quelque chose du genre :
 

Code :
  1. CommandeMagique(maCommande) ;


 
Ou encore :
 

Code :
  1. CommandeMagique("System.out.println()" );


 
L'idée est tordue je vous l'accorde mais ca me ferait gagner un temps précieux pour la suite.
 
Pour résumer je cherche une commande Java permettant d'éxécuter une commande Java sous forme de String  :pt1cable:  
 
D'avance merci !
 

Reply

Marsh Posté le 07-01-2011 à 20:39:16   

Reply

Marsh Posté le 07-01-2011 à 21:26:54    

A ma connaissance, il n'existe pas de telle methode, sorte d'equivalent a la methode "eval" en javascript, php, ...
 
En java, tu as access a ce qu'on appelle la reflexion, mais je ne pense pas que ca puisse repondre a ton besoin ...  La seule chose que je connais qui fait ca, c'est http://www.beanshell.org. Apres tu peux peut etre regarder des choses comme groovy, tout depend de ce que tu veux vraiment faire ...

Reply

Marsh Posté le 25-01-2011 à 21:32:13    

Code :
  1. Object lancerMethode(Object o, Object[] args, String nomMethode) throws Exception
  2. {
  3.   Class[] paramTypes = null;
  4.   if(args != null)
  5.   {
  6.     paramTypes = new Class[args.length];
  7.     for(int i=0;i<args.length;++i)
  8.     {
  9.       paramTypes[i] = args[i].getClass();
  10.     }
  11.   }
  12.   Method m = o.getClass().getMethod(nomMethode,paramTypes);
  13.   return m.invoke(o,args);
  14. }

Reply

Marsh Posté le 25-01-2011 à 21:42:37    


[:pingouino]
c'est pas ce qu'il demande, et cette methode est foireuse vu que tu utilises la classe des arguments passes en arg pour trouver la methode, ca va foirer des qu'on passe un objet d'une sous-classe de la classe effectivement utilisee dans la signature de methode [:souk]

Reply

Marsh Posté le 25-01-2011 à 21:45:29    

embarque plutot un interpreteur dans ton application java, du style jypthon ou lua (IIRC), tes commandes seront pas en java, mais ça va marcher et etre plus simple à mettre en oeuvre  :D


Message édité par kadreg le 25-01-2011 à 21:45:45

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 25-01-2011 à 22:01:28    

+1 [:romf]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed