5

我想知道是否有某种 shell 只会监听用户输入(带有行缓冲区)并从 main 方法内部运行,包括类路径上的 jdk。这样它看起来就像浏览器中的 JavaScript 控制台或 groovy 控制台。这对于测试代码片段会很方便。

可以将其写入 shell 并按回车键:

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

这就是 bsh.Interpreter 可以做的。但是我发现它很难使用。我无法在 shell 行上用光标向后/向左移动... ^[[D^[[D^[[D .... 我只能删除最后一个字符。不确定它是否特定于操作系统(我在 linux 上),但它非常不方便......

我指的是 Java 语言,而不是 Jruby、Jython 或 Groovy

4

3 回答 3

1

You can try to use the Beanshell graphical desktop that behaves just like a shell.

Start it with:

java bsh.Console   // runs the graphical desktop
于 2011-10-28T20:06:33.493 回答
1

Java 文本控制台是非常基本的行缓冲。这是 Java 的一个特性。您可以使用 JNI 更改输入,但是生成一个 GUI 更简单,您可以在其中完全控制您希望输入的行为方式。

于 2011-06-04T11:40:23.460 回答
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 回答