首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于运行app的Java 9 REPL

用于运行app的Java 9 REPL
EN

Stack Overflow用户
提问于 2016-06-23 10:50:22
回答 3查看 885关注 0票数 10

Java 9正在JDK发行版中引入名为JShell的REPL。是否有任何方法连接到运行某些应用程序的JDK的JShell并执行引用正在运行的应用程序的命令。例如,执行一些方法形成应用程序代码,检查对象等等。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-23 12:05:39

JShell不是标准的java命令,而是另一个命令。一旦打开外壳,它就会在循环中“去”。一旦输入命令,它就会被shell读取和解析,计算结果并打印出来。

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

看来JShell将有一个api,它为其他可能性打开了道路。

票数 4
EN

Stack Overflow用户

发布于 2016-06-30 10:19:02

不,用jshell可不容易。

但是,让我重新表述一下您的问题,这样我们就不会使用jshell,而是使用任何REPL工具:

有没有办法将一些REPL java工具与运行中的java应用程序连接起来,并执行引用正在运行的应用程序的命令。例如,执行一些方法形成应用程序代码,检查对象等等。

https://github.com/lorenzoongithub/nudge4j

那么您应该看看nudge4j,它确实允许

唯一的警告是针对java 8。

票数 0
EN

Stack Overflow用户

发布于 2017-01-30 11:38:41

您可以考虑的另一种选择是类似于BeanShell (尽管BeanShell已经很老了,可能已经被废弃了)。您可以在应用程序内部启动一个BeanShell控制台,允许您访问对象并调用它们上的方法。有关一些想法,请参阅JConsole示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37989501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档