2011-06-04 13 views
5

Me preguntaba si hay algún tipo de shell que simplemente escuche la entrada del usuario (con un buffer de línea) y se ejecute internamente desde el método main, incluyendo jdk en classpath. Para que se vea como la consola de JavaScript en los navegadores o la consola Groovy. Sería útil para probar fragmentos de código.¿Hay una alternativa a BeanShell? ¿Algo como javascript o la consola Groovy para Java?

Se podría acaba de escribir esto en la cáscara y la tecla de retorno:

Map<String, String> env = System.getenv(); 
for (String envName : env.keySet()) { 
    System.out.format("%s=%s%n", envName, env.get(envName)); 
} 

Esto es lo que puede hacer bsh.Interpreter. Pero me resulta muy difícil de usar. No puedo retroceder/izquierda con el cursor en la línea del intérprete ...^[[D^[[D^[[D .... Solo puedo borrar los últimos caracteres. No estoy seguro si es específica del sistema operativo (estoy en Linux), pero es muy incómodo ...

quiero decir algo en lenguaje Java, no jruby, Jython o Groovy

Respuesta

1

consola de texto Java es muy básico, almacenamiento en línea de la línea. Esta es una característica de Java. Puede cambiar la entrada usando JNI, sin embargo, es más simple producir una GUI donde tenga control total sobre cómo desea que se comporte la entrada.

1

Puede intentar utilizar el escritorio gráfico de Beanshell que se comporta como un shell.

Start it with:

java bsh.Console // runs the graphical desktop 
0

Run bsh.Interpreter bajo rlwrap - http://utopia.knoware.nl/~hlub/rlwrap/

rlwrap es un gran programa que agrega controles readline (recordemos la historia, edición de líneas, etc) a cualquier programa de línea de comandos.

Cuestiones relacionadas