gpt4 book ai didi

java - 在java程序中嵌入swank-clojure

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:33 24 4
gpt4 key购买 nike

基于 http://github.com/technomancy/swank-clojure 的嵌入部分,我正在使用以下内容对其进行测试。有没有更好的办法这个不使用编译器?有没有办法以编程方式停止自负?似乎 start-repl 控制了线程。什么将是为它产生另一个线程并能够以编程方式杀死该线程。

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));
}
}

非常感谢任何帮助,呵呵

最佳答案

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

代码可以是这样的

(ns your-app.Embed
(:require [swank.swank :as swank])
(:gen-class
:methods [[startSwank [] void]]))

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

(添加您需要的任何其他内容);然后在应用程序的 Java 部分,您可以导入 Clojure 准备的类,实例化它并在实例上调用 .startSwank()

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

关于java - 在java程序中嵌入swank-clojure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2661025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com