Clojure устанавливается таким образом?
-
10-10-2019 - |
Вопрос
Я скачал 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.