5

クラスパスのjdkを含む、ユーザー入力を(ラインバッファを使用して)リッスンし、メインメソッド内から内部で実行するシェルがあるかどうか疑問に思っていました。ブラウザーの JavaScript コンソールまたは groovy コンソールのように見えるようにします。コードのスニペットをテストするのに便利です。

これをシェルに書き込んでリターンを押すだけです:

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

これが bsh.Interpreter でできることです。でもとても使いづらいと思います。シェル行でカーソルを前後に移動できません... ^[[D^[[D^[[D .... 最後の文字しか削除できません。OS固有かどうかはわかりませんが(私はLinuxを使用しています)、非常に不便です...

Jruby、Jython、Groovyではなく、Java言語で何かを意味します

4

3 に答える 3

1

Java テキスト コンソールは、ライン バッファリングを備えた非常に基本的なものです。これは Java の機能です。JNI を使用して入力を変更できますが、入力の動作を完全に制御できる GUI を作成する方が簡単です。

于 2011-06-04T11:40:23.460 に答える
1

シェルのように動作する Beanshell グラフィカル デスクトップの使用を試すことができます。

で開始します:

java bsh.Console   // runs the graphical desktop
于 2011-10-28T20:06:33.493 に答える
0

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

rlwrap is a great program that adds readline controls (history recall, line editing, etc) to any command-line program.

于 2011-10-28T20:14:19.257 に答える