Прикрепите clojure / scala repl к работающей JVM - PullRequest
26 голосов
/ 09 ноября 2010

У меня есть Java-приложение, работающее под tomcat в Sun java 6 JVM. Есть ли способ прикрепить scala или clojure REPL к работающей JVM?

Когда веб-приложение запущено и работает, контекст, в котором должны выполняться вызовы, уже настроен на работающей виртуальной машине. Следовательно, это может быть действительно полезно при вызове произвольных вызовов метода Java для пошаговой, исследовательской разработки и для отладки.

Ответы [ 4 ]

21 голосов
/ 09 ноября 2010

Скопировано поверх ответа на другой вопрос согласно вашему запросу:

liverepl: подключите Clojure REPL к запущенным процессам Java или Clojure без какой-либо специальной настройки

с сайта: Запустите REPL Clojure, подключенный к любому запущенному процессу Java или Clojure без необходимости предварительно настраивать процесс каким-либо особым образом. Теперь поддерживает подключение к веб-приложениям Tomcat. Вы можете использовать repl для запуска кода, проверки переменных и переопределить функции Clojure.

https://github.com/djpowell/liverepl

7 голосов
/ 09 ноября 2010

Нет способа прикрепить REPL к уже работающей JVM, поэтому вам нужно подумать о проблеме в обратном направлении ...

Запустите REPL на сервере, либо при запуске программы, либо вответ на входящее клиентское соединение (например, через Telnet).

Здесь есть хороший пример: http://blog.homecloud.ca/2010/03/scripster-interactive-scala-repl-using.html

Вы также можете разместить экземпляр Interpreter на своем сервере, а затем открыть веб-интерфейс.Это подход, принятый http://www.simplyscala.com/


Если вы думаете об отладке, вам будет лучше ответить на этот вопрос: Загляните в интерпретатор при произвольном расположении кода скалы

5 голосов
/ 16 апреля 2011

Вы можете использовать это: https://github.com/wirde/swank-inject

Позволяет прикрепить repl Clojure к работающему процессу Java (с включенной удаленной отладкой).

Вы также можете указать количество классов (синглетонов), для которых экземпляры будут найдены и привязаны к символу, доступному в ответе.

1 голос
/ 20 марта 2014

Для подключения Scala REPL к другой JVM посмотрите Scalive .

...