首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java程序中嵌入swank-clojure

在java程序中嵌入swank-clojure
EN

Stack Overflow用户
提问于 2010-04-18 11:32:44
回答 1查看 897关注 0票数 6

基于http://github.com/technomancy/swank-clojure的嵌入部分,我将使用以下内容对其进行测试。有没有一种不使用Compiler的更好的方法?有没有办法通过编程来停止swank?似乎start-repl控制了线程。有什么好方法可以为它派生另一个线程,并能够编程地杀死那个线程。

代码语言:javascript
复制
import clojure.lang.Compiler; 
import java.io.StringReader; 

public class Embed { 
    public static void main(String[] args) throws Exception { 
        final String startSwankScript = 
            "(ns my-app\n" + 
                "  (:use [swank.swank :as swank]))\n" + 
                "(swank/start-repl) "; 
        Compiler.load(new StringReader(startSwankScript)); 
    } 
} 

任何帮助都非常感谢,hhh

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-19 04:48:56

你能接受在Clojure中实现Embed类吗?您可以使用gen-class (有关详细信息,请参阅Meikel Brandmeyer's tutorial )和AOT编译来做到这一点。

代码可能是这样的

代码语言:javascript
复制
(ns your-app.Embed
  (:require [swank.swank :as swank])
  (:gen-class
   :methods [[startSwank [] void]]))

(defn -startSwank []
  (swank/start-repl))

然后,在应用程序的Java部分,您可以导入由Clojure准备的类,实例化它,并在实例上调用.startSwank()

不确定是否以编程方式停止Swank...我很想知道我自己有什么好方法去做。(如果我弄清楚了,我会带着更新回来的;否则,我会很乐意阅读其他人的回答,详细说明如何去做。)

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

https://stackoverflow.com/questions/2661025

复制
相关文章

相似问题

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