Java 有交互式解释器吗?

问题描述 投票:0回答:6

我想从 shell 交互执行 java 命令:有没有办法做到这一点?

java compilation interpreter
6个回答
7
投票

我所知道的最接近的是BeanShell


6
投票

不是交互式解释器或 shell,但请考虑 Eclipse 剪贴簿页面 一个可能的选项。

Java开发工具包(JDT) 贡献了一个剪贴簿设施 可用于实验和评估 构建之前的 Java 代码片段 完整的Java程序。片段是 在剪贴簿中进行编辑和评估 页面编辑器,导致出现问题 在编辑器中报道。

从 Java 剪贴簿编辑器中,您可以 选择一个代码片段,对其进行评估, 并将结果显示为字符串。 您还可以显示该对象 评估代码片段的结果 在调试器的表达式视图中。

奖励:剪贴簿是 Eclipse 的默认功能,因此不需要安装任何您尚未安装的功能。


3
投票

我建议使用 DrJava http://drjava.org/。它可以满足您的目的


3
投票

不,(据我所知)不可能从命令行交互式地编写和运行任意java片段。

几年前我一直在寻找类似的东西。 BeanShellJDistro 具有纯 Java shell 的一些元素。我发现的最接近的是 jsh,据我记得,这是某人的大学项目,从未受到任何欢迎,因此被放弃了。


1
投票

我认为这个人希望能够做类似以下假设示例的事情

java --cmd 'int x=5; System.out.print(x);'

您可以编写自己的程序,我们称之为

java-snippet
,它有一个名为
code
的命令行参数字符串。将代码片段插入到临时文件中。

...main(...) {
    //vvv your program inserts code here vvv
    //INSERT_CODE_MARKER
    //^^^                                ^^^
}

然后你的

java-snippet
程序编译临时文件并立即运行它。

[编辑:看来原始发帖人实际上并不想要这个,而是想要一个交互式java解释器——将此答案留在这里供后代使用]


0
投票

Java Shell 工具(JShell)是一个用于学习 Java 编程语言和构建 Java 代码原型的交互式工具。它是在 JDK 9 中引入的。JShell 是一个读取-求值-打印循环工具 (REPL),它在输入声明、语句和表达式时对其求值并立即显示结果。该工具从命令行运行。

https://docs.oracle.com/en/java/javase/11/jshell/introduction-jshell.html

© www.soinside.com 2019 - 2024. All rights reserved.