【问题标题】:Is there an alternative to BeanShell ? Something like javascript or groovy console for Java?有没有 BeanShell 的替代品?像 javascript 或 Java 的 groovy 控制台之类的东西?
【发布时间】:2011-06-04 09:45:04
【问题描述】:

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

你可以把它写进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

【问题讨论】:

    标签: java shell beanshell


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以尝试使用 Beanshell 图形桌面,其行为就像一个 shell。

      Start it with:

      java bsh.Console   // runs the graphical desktop
      

      【讨论】:

        【解决方案3】:

        在 rlwrap 下运行 bsh.Interpreter - http://utopia.knoware.nl/~hlub/rlwrap/

        rlwrap 是一个很棒的程序,它可以将 readline 控件(历史调用、行编辑等)添加到任何命令行程序中。

        【讨论】:

          猜你喜欢
          • 2011-11-28
          • 1970-01-01
          • 1970-01-01
          • 2010-10-30
          • 1970-01-01
          • 1970-01-01
          • 2011-04-07
          • 2011-09-14
          • 1970-01-01
          相关资源
          最近更新 更多