gpt4 book ai didi

java - 是否可以将一串 Clojure 代码编译为 java 中的类?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:56 26 4
gpt4 key购买 nike

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

我尝试了以下方法:

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

但失败了:

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 代码编译成类文件?

最佳答案

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

AOT编译的单位是命名空间,编译函数好像是在文件中寻找命名空间。我认为必须将 Clojure 文件写入正确的相对路径,以便编译函数可以找到合适的命名空间。

关于java - 是否可以将一串 Clojure 代码编译为 java 中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240016/

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