【问题标题】:How can I obtain an interactive shell (like Ruby's irb) for Java?如何获得 Java 的交互式 shell(如 Ruby 的 irb)?
【发布时间】:2025-12-26 17:15:12
【问题描述】:

去年我做了 Ruby 开发,在那期间我发现了 irb,它让运行小型“代码实验”变得简单而有趣。我最近换了团队,现在正在做 Java 开发,我发现我真的很想念我的 irb 窗口。我想为 Java 做同样的事情,但我不知道怎么做。

我正在使用 Eclipse(groan),但 Eclipse 的花里胡哨的东西不是一回事。

【问题讨论】:

  • 我更改了问题的措辞,以坚持 SO 的“无工具推荐”政策。 FWIW,这个问题已经存在了很长时间(截至目前:近 10 年),从统计数据来看,似乎帮助了很多人,包括我。我不确定为什么它现在是一个问题。尽管如此,我还是改写了这个问题,以便它继续帮助人们,同时不违反(不必要的限制性)规则。

标签: java ruby irb


【解决方案1】:

BeanShell 可能就是您要找的。​​p>

https://github.com/beanshell/beanshell

【讨论】:

  • 是的,这正是我想要的。当然,我发布问题后找到了它。谢谢!
【解决方案2】:

有几个选择:BeanShell 已经存在很长时间了,是一个很棒的 Java REPL。

另一种选择是groovy 的 groovysh 或 groovyConsole。虽然 groovy 不是严格意义上的 Java,但它非常适合交互式地玩 Java 类。

【讨论】:

  • +1。我经常以这种方式使用 Groovy,作为试验 Java 类和测试代码位的环境。大多数 Java 代码将按原样运行,因此 Java 程序员无需了解 Groovy 即可从其 shell 中受益。 (不过,学习一点 Groovy 并不是一个坏主意,因为它可以简化许多任务,并且可以在使用它时提高您的工作效率。)
【解决方案3】:

我知道这是个老问题,但 jshell: The Java Shell (Read-Eval-Print Loop) 即将在 Java 9 中出现(希望是 2017 年夏季)。

【讨论】:

    【解决方案4】:

    “使用 Eclipse Java 剪贴簿页面”会更好吗 ;-)

    我并没有真正使用过irb,但是如果你只是想在eclipse中运行代码sn-ps,那么这是一种简单的方法。

    【讨论】:

    • +1。很久以前,Eclipse 曾经是一个 Smalltalk IDE。不幸的是,它失去了您对 Smalltalk IDE 所期望的大部分功能,但仍然存在一些残余。最明显的一个是增量在线后台编译器,它执行从语法突出显示到代码完成到类型检查到重构的各种工作,但 Scrapbook 是另一种。当然,它还不如 Smalltalk 工作空间,但我们预计静态语言 IDE 会落后于动态语言 IDE 大约 5-25 年。
    • 好的,我会解除 Eclipse 禁令 ;) 这不是我的想法,但它看起来很整洁。我会从未在菜单中找到它(也不知道这是我要找的东西)。
    【解决方案5】:

    尝试过 JShell 和 beanshell。 确实建议使用 JShell 而不是 beanshell。向上键将回滚到历史行。显示非常人性化。

    谢谢@Anders Sandvig

    java 9起可以在jdk中找到。

    【讨论】: