【问题标题】:Is there any Python-like interactive console for Java?是否有任何类似 Python 的 Java 交互式控制台?
【发布时间】:2010-10-21 16:48:24
【问题描述】:

我最近花了很多时间在 Java 中进行编程,而我对脚本语言怀念的一件事是能够在控制台中测试它们。

为了快速测试一个 java 程序,我必须编辑一个文件,然后将其转换为字节码并执行它。即使使用 IDE,在第 372 次之后它也失去了乐趣。

我想知道是否有一款产品具有交互式控制台(我敢打赌您需要 JIT 编译器)和一些自动完成功能(我想这是可能的)。

也许这是我不知道的非常普遍的事情,或者是完全不可能的事情,但这是最糟糕的问题:-)

【问题讨论】:

    标签: java console


    【解决方案1】:

    是的; jshell,在此之前一些近似值是 GroovyClojureScalaBean Shell

    【讨论】:

    • 同意。我在emacs中通过JDE使用BeanShell;它远非完美,但它在控制台和编辑常规 Java 文件时提供了一个交互式控制台和不错的完成支持。
    • 确实,它非常原始,但总比没有好。谢谢你,也感谢编写它的人:-)
    • 还有带有 Eclipse IDE 插件的 Scala,具有用于 REPL 样式执行的交互式控制台。见scala-ide.org
    • @JulianSquires:有没有一步一步的地方?
    • 我已经很多年没有使用过那个 BeanShell 设置了。如果我想重新设置它,我会从emacswiki.org/emacs/JavaDevelopmentEnvironment 开始。
    【解决方案2】:

    JShell 现在是 Java 9 的标准。 JShell introduction

    【讨论】:

    • 现在(自 11 月以来)这个答案比从投票中看起来要好得多,也许它甚至应该被接受 @e-satis。
    • 如何调用 jshell?
    【解决方案3】:

    【讨论】:

      【解决方案4】:

      试试Dr Java's“交互面板”。

      【讨论】:

      • 是的,我真的很想念它。现在我更改为 Eclipse,但我不知道如何在 Eclipse 中获取交互窗格。
      【解决方案5】:

      您可以使用BeanShell 运行任意Java 代码。如果你想要 Eclipse 集成,EclipseShell 有 BeanShell 支持。

      【讨论】:

        【解决方案6】:

        有趣的是,您会得到一个带有 Jython 的交互式控制台!你不会得到更多更像 Python 的东西。

        【讨论】:

        • 有点综合,但这是我更喜欢的答案!
        【解决方案7】:

        Jgrasp IDE 有一个交互式控制台,您可以在其中进行测试, 我经常使用它,还有一个调试视图显示变量等 在你把它们deklare之后。

        它是opensoruce,你可以得到一个副本att http://www.jgrasp.org/

        // 安德斯

        【讨论】:

        • 我环顾了 JGrasp,但找不到交互式控制台
        【解决方案8】:

        您也可以执行 Scala 交互式解释器。

        【讨论】:

          【解决方案9】:

          我使用过的一种成功的方法是在 Eclipse 中调试并使用显示视图。显示视图为您提供的是通过执行 Java 语句来操作当前在 JVM 中运行的代码的能力。在您停止的特定断点处可用的任何对象都在显示视图的范围内。虽然这不是您正在寻找的内容,但它确实提供了 REPL 为其他编程环境提供的一些功能。请参阅Debugging with the Eclipse Platform 了解更多信息。

          【讨论】:

          • 我仍然更喜欢 Scala IDE Eclipse 插件,但是当不希望安装插件时,Debug 方法是最接近 REPL 解释器的方法,它是 Eclipse JDT 中的内置“功能” . :)
          • 如何在显示视图中显示表达式的值?例如,如果我写如下内容: String s = "Hello World", s1 = s.substring (3, 5);如何知道 s1 的值?我找不到路
          • 您可以突出显示s1,然后调出上下文菜单。那里有一个标记为Display 的条目,可以满足您的要求。
          【解决方案10】:

          我偶尔会遇到同样的问题并有部分解决方案。我保留了一个文件(正如查理马丁所说,Java 需要它的类上下文),它只不过是一个测试程序。在第二个窗口(控制台)中,我运行了一个脚本,它每隔一两秒检查一次源文件的修改时间。当它看到源代码更改时,它会重新编译它(我通常在 C 中摆弄,但我也用 Java 完成过)并执行结果。

          这不是一个很好的解决方案,但它是一次性的,我发现它非常有用。

          【讨论】:

            【解决方案11】:

            你可能对Groovy感兴趣。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-03-29
              • 1970-01-01
              • 1970-01-01
              • 2013-09-28
              • 1970-01-01
              • 1970-01-01
              • 2016-07-12
              相关资源
              最近更新 更多