Clojure 编译后无法加载已编译的类

Clojure 编译后无法加载已编译的类,clojure,compilation,classpath,Clojure,Compilation,Classpath,我搜索了很多,找到了很多答案,这表明这是一个“流行”的问题。。。然而,我无法解决它 我可以成功编译一个类。为了做到这一点,我有以下bash脚本: #!/usr/bin/env bash if [[ $CLASSPATH ]] ; then extra_classpath="" else extra_classpath=":$CLASSPATH" fi while true ; do case "$1" in -cp | -classpath)

我搜索了很多,找到了很多答案,这表明这是一个“流行”的问题。。。然而,我无法解决它

我可以成功编译一个类。为了做到这一点,我有以下bash脚本:

#!/usr/bin/env bash

if [[ $CLASSPATH ]] ; then
    extra_classpath=""
else
    extra_classpath=":$CLASSPATH"
fi

while true ; do
    case "$1" in
        -cp | -classpath)
            extra_classpath=":$2"
            shift 2 ;;
        --)
            shift
            break ;;
        *)
            break ;;
    esac
done

java -cp /usr/share/java/clojure.jar:./classes/:./src/"$extra_classpath" \
clojure.main "$@"
这基本上是对默认情况下在Debian上安装的闭包的翻版,只将本地目录添加到类路径中

当我以这种方式启动REPL时,我可以执行以下操作:

user=> (compile 'tld.assignment.sum_calculator)
类文件在./classes/tld.assignment.sum\u计算器中生成

但我无法加载编译的内容。我尝试使用完全限定的类名作为参数运行此脚本-找不到文件。如果我像这样运行java:

$ java -cp /usr/share/java/clojure.jar:./classes/ \
tld.assignment.sum_calculator 1 2
另外,从REPL开始,我立即尝试了
(加载“tld.assignment.sum_calculator”)
(带文件扩展名和不带文件扩展名,点替换为斜杠,带前导点,全部无效-
(加载)
始终“成功”,返回nil,然后结束:S

我找不到类def。我不知道出了什么问题(

编辑:


很抱歉,一次成功的路径置换就成功了。我不知道为什么,但是如果我将./classes/目录与类路径上的clojure.jar交换,那么它就可以工作了…Java…

真的不需要回答这个问题。它看起来像是路径扩展中的一些错误(?)或者在Java loader读取路径的方式上……无论如何,现在已经解决了