BeanShell, shell scripting con Java!
BeanShell es un lenguaje de scripting en consola basado en Java, que provee toda la funcionalidad de la API para que la manejemos interactivamente, sin necesidad de crear clases y compilaciones manuales.
Algunos ya lo conocerán, puesto que no es algo nuevo, pero para otros tantos pasa desapercibido y vaya que es útil.
Es parte del Java Community Process bajo el nombre: JSR 274: The BeanShell Scripting Language
Es comparable con lenguajes como Perl o Python, extensamente utilizados en sistemas UNIX/Linux para shell scripting.
Aquí les pongo un ejemplo de su utilización en consola, como si estuviéramos escribiendo comandos, en mi caso bajo Debian GNU/Linux ("bsh %" es el prompt):
Aunque también podemos crear un script en un archivo (para este ejemplo lo hago con "cat") y después ejecutarlo con el comando bsh, tal como un script de Bash o Korn Shell:
Ya que tenemos acceso a toda la API, las posibilidades son infinitas :-)
Recursos:
Sitio oficial: http://www.beanshell.org/
Manual: http://www.beanshell.org/manual/
Documentación y ejemplos: http://www.beanshell.org/docs.html
Saludos a todos!
- benek's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
Esta bueno
Yolo eh probado para hacer algunas cosas y se me hace muy útil y bastante bueno. Aparte de me gusta mas que groovy por que éste tiene la sintaxis igual que la de java y no hay que aprender nada nuevo.
sobres
interesante
Yo no lo conocía, y como dices, está bueno para algunas tareas. Hay manera de correrlo y que importe algunas librerías para tener acceso a ciertas clases para poder tener algunas utilerías a la mano?
Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley
No sólo para consola
Aclaro que beanshell no es para uso exclusivo en consola, ni muchos menos.
Por ejemplo, uno de tantos frameworks para desarrollo web llamado JPublish lo utiliza para crear "Acciones".
http://code.google.com/p/jpublish/
Por cierto, he usado beanshell y me parece buen lenguaje, sin embargo, me ha gustado un poco más Groovy
:)
En fin,
Sí, puedes agregar recursos
Sí, puedes agregar recursos la classpath de las siguientes maneras:
addClassPath( "/home/pat/java/mystuff.jar" );
addClassPath( new URL("http://myserver/~pat/somebeans.jar") );
O si quieres modificar la classpath actual y no solo agregar utilizas setClassPath(); de la misma manera.
--
Javier Benek
Buen dato, es muy extenso lo
Buen dato, es muy extenso lo que se puede hacer con BeanShell :-)
Estaba viendo en la documentación que incluso con BeanShell se pueden crear servlets así que el panorama se extiende aún más.
--
Javier Benek
acciones remotas
Pues para lo que yo lo eh utilizado es en nuestras aplicaciones j2ee. Creo un EJB al que se le pase una string y un array de object como parametros, y en un método del ejb invoco al bean shell embebido en mi servidor pasandole el array de objetos como parametros al script y así, tengo una manera eficiente de hacer tareas únicas sin tener que redeployar mi server, por ejemplo:
sobres