2011-06-04 1 views
5

Je me demandais s'il y a une sorte de shell qui écouterait simplement l'entrée de l'utilisateur (avec un buffer de ligne) et s'exécuterait en interne depuis la méthode main, y compris jdk sur classpath. Pour que cela ressemble à la console JavaScript dans les navigateurs ou la console groovy. Ce serait pratique pour tester des extraits de code.Existe-t-il une alternative à BeanShell? Quelque chose comme javascript ou console groovy pour Java?

On pourrait écrire tout cela dans la coquille et le retour a frappé:

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

C'est ce que bsh.Interpreter peut faire. Mais je trouve cela très difficile à utiliser. Je ne peux pas reculer/gauche avec le curseur sur la ligne du shell ...^[[D^[[D^[[D .... Je ne peux effacer que les derniers caractères. Je ne sais pas si elle est spécifique OS (je suis sous Linux), mais il est très pratique ...

Je veux dire quelque chose dans le langage Java, pas JRuby, Jython ou Groovy

Répondre

1

console Java texte est très basique avec tampon de ligne. C'est une caractéristique de Java. Vous pouvez changer l'entrée en utilisant JNI, mais il est plus simple de produire une interface graphique où vous avez un contrôle total sur la façon dont vous voulez que l'entrée se comporte.

1

Vous pouvez essayer d'utiliser le bureau graphique Beanshell qui se comporte exactement comme un shell.

Start it with:

java bsh.Console // runs the graphical desktop 
0

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

rlwrap est un programme qui ajoute des contrôles readline (rappel historique, édition en ligne, etc.) à tout programme de ligne de commande.

Questions connexes