Attach a clojure / scala repl to a running JVM

2022-09-01 15:52:27

我有一个java Web应用程序在Sun java 6 JVM的tomcat下运行。有没有办法将 scala 或 clojure REPL 附加到正在运行的 JVM 上?

Web 应用启动并运行后,将在正在运行的 VM 中设置要在其中进行调用的上下文。因此,这在调用任意java方法调用以进行增量,探索性开发和调试时非常有用。


答案 1

根据您的要求复制其他问题的答案:

liverepl:将Clojure REPL连接到运行Java或Clojure进程,无需任何特殊设置

从网站:启动连接到任何正在运行的Java或Clojure进程的Clojure REPL,而无需事先以任何特殊方式设置该进程。现在支持连接到 Tomcat Web 应用程序。您可以使用 repl 来运行代码、检查变量和重新定义 Clojure 函数。

https://github.com/djpowell/liverepl


答案 2

没有办法将REPL附加到已经运行的JVM,所以你需要向后考虑这个问题......

在服务器上启动REPL,无论是在程序启动时还是在响应入站客户端连接(例如使用Telnet)时。

这里有一个很好的例子:http://blog.homecloud.ca/2010/03/scripster-interactive-scala-repl-using.html

您还可以在服务器中托管解释器实例,然后公开 Web 界面。这是 http://www.simplyscala.com/


如果你正在考虑调试,那么这个答案会更好地为你服务:在任意 scala 代码位置放入解释器


推荐