设置Datomic类路径函数以供Windows中的事务处理程序使用

时间:2018-11-14 12:19:33

标签: java windows clojure classpath datomic

我正在尝试设置一个classpath函数,供我的自定义事务处理函数使用,如下所述: https://docs.datomic.com/on-prem/database-functions.html#classpath-functions

我已经将DATOMIC_EXT_CLASSPATH环境变量设置为.jar文件的路径,并且 将:requires添加到事务处理函数。不过,当尝试运行功能时,我得到了 FileNotFoundException Could not locate some_ns/some_file.clj on classpath错误。

我正在使用Windows 8,是否应该执行一些其他步骤?我可以在Datomic交易器的日志中看到该交易器正确使用了jar文件吗?

1 个答案:

答案 0 :(得分:1)

从最新版本(0.9.5786)开始,存在一个错误,其中Windows脚本中未考虑DATOMIC_EXT_CLASSPATH。作为解决方法,我在Datomic发行版中通过将bin\classpath.cmd附加到DATOMIC_EXT_CLASSPATH来修改了CP_LIST文件:

@echo off
set CP_LIST=

for %%i in (.\lib\*.jar) do call bin\cpbuild.cmd %%i
for %%i in (.\*transactor*.jar) do call bin\cpbuild.cmd %%i
set CP_LIST=bin;resources;%CP_LIST%;%DATOMIC_EXT_CLASSPATH%

通过此修复程序,一切正常