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/