Вопрос

Я скачал Clojure 1.2 https://github.com/downloads/clojure/clojure/clojure-1.2.0.zip , извлеченный его под /библиотечный каталог, создал Clojure_home, добавил $ clojure_home /script в мой путь $.

Когда я пытаюсь запустить сценарии CLJ или Repl, которые расположены в каталоге сценария, я получаю эту ошибку:

Исключение в потоке "Main" java.lang.noclassdeffounderror: jline/ consolerunner, вызванный: java.lang.classnotfoundexception: jline.consolerunner на java.net.urlclassloader $ 1.run (urlclassloader.java:202) at java.security.accesscontroller. Doprivileged (нативный метод) на java.net.urlclassloader.findclass (urlclassloader.java:190) на java.lang.classloader.loadclass (classloader.java:307) на sun.misc.launcher $ adpclassloarder.loadclass (guller.java: 301) на java.lang.classloader.loadclass (classloader.java:248)

ОК, jline.jar не в классе, поэтому я проверил сценарии CLJ и Repl:

CLASSPATH=src/clj:test:test-classes:classes/:script/jline-0.9.94.jar:../clojure-contrib/target/clojure-contrib-1.2.0-SNAPSHOT.jar

if [ -z "$1" ]; then 
   exec java -server jline.ConsoleRunner clojure.main 
else 
   SCRIPT=$(dirname $1) 
   export CLASSPATH=$SCRIPT/*:$SCRIPT:$CLASSPATH 
   exec java -Xmx3G -server clojure.main "$1" "$@" 
fi

Я скачал jline.jar под $ clojure_home/script, но я все еще получаю ту же ошибку.

Это привело меня к вопросу:
Какова роль https://github.com/downloads/clojure/clojure/clojure-1.2.0.zip тем не мение?
Это должно использоваться для установки Clojure? Или просто чтобы построить и получить clojure.jar?
Я заметил, что никто не говорит об установке Clojure таким образом.
Я что-то упускаю?

Это было полезно?

Решение

Clojure, будучи языком JVM, должен иметь дело с JVM ClassPath. Это делает «установку» его немного громоздким и запутанным. Вместо того, чтобы установить его самостоятельно, попробуйте несколько инструментов, таких как CLJR и Cake. Я написал сообщение в блоге об этом, что может быть полезно: http://blog.raynes.me/?p=48

В итоге: проверьте Cljr, кекс, а также Лейнинген.

У большинства людей в сообществе Clojure нет «установленного». Большинство людей используют инструмент сборки и/или CLJR. Не имеет большого смысла устанавливать Clojure в центральное место, когда, неизбежно, вам понадобится управление зависимостями, и банки будут скопированы повсюду. В любом случае, гораздо проще позволить инструменту обрабатывать для вас путь к классу.

Другие советы

Файл clojure.zip существует, поэтому люди, которые пишут инструменты, будут иметь место для своих инструментов, чтобы получить необходимые им детали;)

Для людей, не пишущих инструменты, они либо работают/с новейшей филиалом от Github, и поэтому они получают Clojure с притяжением GIT, либо используют вышеупомянутые Liningen, Cake, CLJR, против часовой стрелки (Eclipse), La Clojure (Intellij), или netbeans.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top