juanjonavarro.com

secciones

BeanShell. Un interprete Java.

Aunque ya lo conocía desde hace tiempo, hoy tuve la oportunidad de experimentar con BeanShell. Se trata de un interprete de Java (en realidad de un superconjunto de Java) que puede ser utilizado en modo interactivo para experimentar y familiarizarte con un API. Un ejemplo de sesión interactiva:

bsh % a=new Date();
bsh % print(a);
Fri Oct 31 18:27:51 CET 2003
bsh % formato= DateFormat.getTimeInstance();
// Error: EvalError: Attempt to resolve method: getTimeInstance()
on undefined variable or class name: DateFormat : at Line: 1 :
in file: <unknown file> : DateFormat .getTimeInstance ( )
bsh % formato = java.text.DateFormat.getTimeInstance();
bsh % formato.format(a);
bsh % print(formato.format(a));
18:27:51

Las líneas que empiezan por “bsh %” son las del prompt, las ordenes que yo escribo. Como se puede ver, es una forma rápida de aprender a utilizar un API (en este ejemplo, yo probaba las instrucciones de formateo de fechas) sin tener que escribir un programa completo en java (que supone hacer una clase, con su constructor, etc) además de que no necesita declarar variables, etc.

El entorno gráfico que incluye (también se puede utilizar desde línea de comandos o utilizarlo para interpretar scripts en ficheros) permite tener varios “shells” de ordenes abiertos, así como editar directamente los scripts e incluye un browser de clases. Yo he echado en falta:

  • El autocompletado de métodos y atributos. Que se pueda poner el nombre de un objeto, el punto, y que te salga la típica lista de métodos
  • El javadoc integrado.
  • Un browser de objetos (no de clases). Una forma de inspeccionar el estado de un objeto.

No se si hay alguna herramienta más de este tipo para Java. ¿Conocéis alguna?

31 octubre 2003 —

Comentarios cerrados para este artículo