用于运行应用程序的 Java 9 REPL

标签 java read-eval-print-loop java-9 jshell

Java 9正在引入名为 JShell 的 REPL在 JDK 发行版中。有什么方法可以连接到运行某些应用程序的 JDK 的 JShell 并执行引用该正在运行的应用程序的命令。例如,从应用程序代码中执行一些方法,检查对象等。?

最佳答案

JShell 不是标准的 java 命令,它是另一个命令。一旦您打开 shell,它就会“进入”Read Eval Print Loop。一旦您键入一个命令,它就会被 shell 读取和解析、评估并打印结果。

您可以定义变量并将类添加到类路径,但我认为从那里启动应用程序或服务器是不可能的,至少在这个阶段不能,而且不能在同一个 JVM 中。因为您可以添加类,所以您可以实例化它们,但是您没有检查它们的变量的选项。然而,您可以看到您在 JShell 范围内实例化的变量(您创建的对象,您只能访问和打印它们的公共(public)方法和变量)。

JShell 似乎会有一个 api,这为其他可能性开辟了道路。

关于用于运行应用程序的 Java 9 REPL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37989501/

相关文章:

java - 使用JSP标签的简单文件读取问题

node.js - 在 Node.js readline shell 中清除终端窗口

java - 反射访问在 IntelliJ IDEA 中的模块化(Java 9+)应用程序的测试中不起作用

java - 声明多个有效最终资源时,try-with-resource 不安全吗?

java - Java 9 中的 opens 指令

java - RxJava : How to retain Thread from upstream

java - 写入套接字输出流而不关闭它

java - 将 "unknown"值与 int 进行比较

clojure - repl/source 函数在 Clojure 中不起作用

swift - 是否可以在 SSH session 中运行 Swift REPL?