我知道这是一个愚蠢的问题,但我们可以暂时考虑一下。
为什么我们不能为Java提供repl模式或shell类型。假设我只想做Math.max(2,3)
来获取输出3.它可以类似于Scala repl模式,默认情况下处理类和主声明(它扩展到App
)并且只有表达式是评价。
技术上:
javac
进行一些修改为每个JVM进程提供一个默认shell会很酷,在运行时,可以访问或设置一些静态变量并拥有实时信息。
所有这些都会被考虑过,但为什么它没有被多数人接受(虽然有一些开源实现)
答案 0 :(得分:4)
这或多或少与BeanShell完全相同。
答案 1 :(得分:2)
Eclipse中的Display视图在此区域提供了许多方便的行为,包括命令完成,对正在运行的应用程序堆栈的访问以及通过System.out的控制台输出。
答案 2 :(得分:2)
就像@Sean建议你确实可以在repl模式下使用bean shell。
java -cp ./bsh-2.0b4.jar bsh.Interpreter
BeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net)
bsh % System.out.println("Hello World");
Hello World
或者,eclipse IDE上鲜为人知的Display
选项卡可以执行任意java代码并动态评估表达式。 Ctrl+U
运行表达式,Ctrl+Shift+I
对它们进行评估。它不是repl模式,而是接近。
答案 3 :(得分:1)