Le Mercredi 10 Mai 2006 11:54, Stéphane Bonhomme a écrit :
> MMM je pense que tu dis quelques contres-vérités la, permets moi de te
> rectifier
>
Aholà.
> >
> >Sous linux il est possible d'écrire des scripts shell directement en java.
>
> Je ne pense pas non, il faudrait qu'il existe un interpréteur de code
> source java !
> Ou alors compiler et produire le bytecode just-in-time (à la python),
> mais de toutes façon, il n'y a pas de jvm installée de base sur beaucoup
> de distributions linux.
>
Effectivement il faut une JVM d'installée. Mais une fois qu'elle est
installée, tu peux choisir coté interpréteurs.
J'utilise le beanshell (http://www.beanshell.org), et il est très pratique.
Voici, par exemple, un script shell qui se lance en ligne de commande, et qui
te donne l'IP de ton poste :
==>
#! /home/herve/java/jdk1.5.0_06/bin/java bsh.Interpreter
import java.net.*;
soc = new Socket("www.google.com", 80);
System.out.println(soc.getLocalAddress().getHostAddress());
soc.close();
<==
Si ce script s'appelle monip, alors tu le places en fichier exécutable, tu
écris au prompt "monip", et il t'affiche ton ip. (bon, la mode WEB 2 serait
de le nommer "myip"...)
Tu vois que c'est un code java un peu détendu par rapport à la norme, mais, si
tu veux, tu peux être tout à fait strict.
> >C'est tout de même mieux qu'avec bash, enfin, il me semble.
>
> Chacun ses goûts, quitte à utiliser un langage de script un peu plus
> évolué que *sh, je me tournarais plutot vers du python ou, au pire du
> perl (la libxml2 a des wrapper pour tous ces langages de toutes façons...)
>
Exact. Moi je me tourne souvent vers Rhino, mais malheureusement je n'ai
encore réussi à trouver le moyen de le placer dans un script shell.
Si je ne fais pas python, c'est juste parce que je me sers de ces scripts
juste pour des bouts de code, et que le beanshell autorise une syntaxe
simplifiée par rapport au java.
Sur mon exemple, par exemple, j'aurais pu écrire :
print(soc.localAddress.hostAddress);
... mais, par fainéantise, j'ai pris la syntaxe compliquée. Cela venait d'un
de mes copié/collé d'une classe java orthodoxe, sans doute.
Avec python, c'est vrai, il est possible d'actionner java par jython, et donc
de se faire un parseur validant. Jamais essayé, mais théoriquement cela doit
marcher. Pour quelqu'un qui connait le python, c'est mieux.
> >Donc il n'y a pas besoin de xerces, puisque le support de XML schema est
> >inclus dans jdk5.
>
> xerces est inclus dans les jdk (relativement récents)...
>
> >Bien sûr, il faut connaître le java, et bien sûr, avec xerces, les lignes
> > de commande sont déjà toutes prêtes... Je ne sais pas ce qui est le mieux
> > pour vous.
>
> Xerces ne peut pas être *directement* appelé en ligne de commande, mais
> il existe un wrapper (assez simple à développer, enfin ça dépend des
> options...).
Bon, là j'admets : impossible de retrouver la référence de l'interface de
xerces; j'ai dû confondre avec Xalan, pour la 100.000ème fois.
D'autres contre-vérités ?
--
SARL diaam informatique - 04 77 25 43 28
Ingenierie, développements de systèmes d'information
http://www.diaam-informatique.com
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Wed May 10 16:32:08 2006