Clojure имеет что-то общее с другими методами сценариев Java, такими как Beanshell, Groovy и Ant ... в том, что при запуске сценария, если вы используете функции загрузки классов языка сценариев, когда ваш сценарий запускает его, -связывается с загрузчиком классов по умолчанию, а затем ваша JVM запускается в настраиваемом загрузчике классов для механизма сценариев. Я понятия не имею, что является причиной вашей ошибки, но вы должны иметь в виду, что если вы вообще делаете в своем скрипте НИЧЕГО, что заставит пользовательский загрузчик классов отказаться от загрузчика классов по умолчанию JVM, то это может объяснить несколько вещей.
По своему опыту я не смог преодолеть эти проблемы, и поэтому, например, в Beanshell мне пришлось прекратить использовать параметры загрузчика классов и указать весь мой путь к классу в командной строке, которая запускает JVM. Таким образом, я знал, что скрипт использует загрузчик классов по умолчанию и все классы будут найдены.
Другой пример с:
Классы / заводной / A.groovy
Классы / заводной / B.groovy
public class A {
public A() {
B b = new B()
}
}
GroovyClassLoader не будет загружать класс Groovy B. Этот тип вещей также может быть воспроизведен при попытке загрузить драйвер JDBC с classForName из пользовательского загрузчика классов (не загрузчик классов по умолчанию).