Было бы приемлемо для вас реализовать класс Embed
в Clojure? Вы можете сделать это с помощью gen-class
(см. учебник Майкеля Брандмейера ) и компиляции AOT.
Код может выглядеть примерно так:
(ns your-app.Embed
(:require [swank.swank :as swank])
(:gen-class
:methods [[startSwank [] void]]))
(defn -startSwank []
(swank/start-repl))
(добавьте все, что вам нужно); затем в части Java вашего приложения вы можете импортировать подготовленный к Clojure класс, создать его экземпляр и вызвать .startSwank()
в экземпляре.
Не уверен насчет программной остановки Свонка ... Мне было бы интересно узнать, как сделать это самому. (И я вернусь с обновлением, если выясню это; в противном случае, я бы хотел прочитать чей-то ответ, подробно описывающий, как это сделать.)