簡體   English   中英

將clojure / scala repl附加到正在運行的JVM

[英]Attach a clojure / scala repl to a running JVM

我有一個在Sun java 6 JVM中在tomcat下運行的java Web應用程序。 有沒有辦法將scala或clojure REPL附加到正在運行的JVM?

一旦webapp啟動並運行,就會在正在運行的VM中設置要進行調用的上下文。 因此,這對於調用增量,探索性開發和調試的任意java方法調用非常有用。

根據您的要求復制其他問題的答案:

liverepl:將Clojure REPL連接到正在運行的Java或Clojure流程,無需任何特殊設置

從網站: 啟動連接到任何正在運行的Java或Clojure流程的Clojure REPL,無需事先以任何特殊方式設置流程。 現在支持連接到Tomcat Web應用程序。 您可以使用repl運行代碼,檢查變量並重新定義Clojure函數。

https://github.com/djpowell/liverepl

沒有辦法將REPL附加到已經運行的JVM上,所以你需要向后思考這個問題......

在程序啟動時或在響應入站客戶端連接時(使用例如Telnet)啟動服務器上的REPL。

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

您還可以在服務器中托管Interpreter實例,然后公開Web界面。 這是http://www.simplyscala.com/采取的方法


如果您正在考慮調試,那么您可以通過以下答案獲得更好的服務: 在任意scala代碼位置放入解釋器

你可以使用這個: https//github.com/wirde/swank-inject

允許您將Clojure repl附加到正在運行的java進程(啟用遠程調試)。

您還可以指定一些類(單例),這些類將找到實例並綁定到repl中可用的符號。

對於連接到其他JVM的Scala REPL,請查看Scalive

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM