簡體   English   中英

如何動態使用clojure文件?

[英]How to use clojure files dynamically?

我想使用Java代碼動態運行某些zip文件中的一些clojure文件。

如果clj.p1.core.clj在類路徑上,則它可以正確運行。

require.invoke(Clojure.read("clj.p1.core"));

如何動態制作它,也就是說,將clj.p1.core.clj放在a1.zip(可能是一些文件)中,java程序可以選擇zip文件然后運行它?

可能應該先解壓縮這些文件,然后在調用Compile類時指定一個*.clj文件。 看一下它的來源

在您的情況下,更好的方法是先從Clojure源代碼編譯Java類,然后再在Java中加載該類。 只需在您需要的構建過程中添加特定步驟即可。 在這種情況下,您的Java代碼看起來會簡單得多,並且不會浪費時間動態加載Clojure代碼。

創建Java文件將很容易。 只需用gen-class聲明將Clojure源與其他名稱空間包裝在一起即可。 將其輸出移至Java項目或正確指定類路徑。 有關更多示例,請參見gen-class頁面

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM