首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能将Clojure代码串编译成java中的类?

有没有可能将Clojure代码串编译成java中的类?
EN

Stack Overflow用户
提问于 2013-06-22 00:24:58
回答 2查看 389关注 0票数 3

我需要将一些clojure文件编译成java字节码文件,将它们存储在磁盘上,以便稍后能够加载/执行它们。

我尝试了以下几种方法:

代码语言:javascript
复制
RT.load("clojure/core");
RT.init();
String clazz = "(ns org.rogach.avalanche.build (:gen-class)) (defn -doStuff [] (println 1))";
Compiler.load(new StringReader(clazz));
Compiler.load(new StringReader("(compile 'org.rogach.avalanche.build)"));

但它失败了:

代码语言:javascript
复制
Exception in thread "main" java.io.FileNotFoundException: 
Could not locate org/rogach/avalanche/build__init.class or org/rogach/avalanche/build.clj on classpath

公平地说,如果我直接从clojure REPL执行该代码,也会发生完全相同的事情。

此外,这种方法不允许我为类文件指定输出目录,这一点也很重要。

如何将clojure代码编译为类文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-22 04:05:20

我强烈怀疑答案是:不是直接的。

AOT编译的单元是名称空间,而compile函数似乎是在文件中查找名称空间。我认为有必要将Clojure文件写入正确的相对路径,以便编译函数能够找到适当的名称空间。

票数 2
EN

Stack Overflow用户

发布于 2014-03-07 08:19:50

看看Nakkaya的Programmatically compiling java code using clojure吧。我在过去使用过它,并且是我对如何将它扩展到接口发表评论的人。我不确定您的用例,但这可以满足您的要求。

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

https://stackoverflow.com/questions/17240016

复制
相关文章

相似问题

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