Можно ли установить Clojure таким образом? - PullRequest
1 голос
/ 09 декабря 2010

Я скачал Clojure 1.2 https://github.com/downloads/clojure/clojure/clojure-1.2.0.zip, распаковал его в каталог / Library, создал CLOJURE_HOME, добавил $ CLOJURE_HOME / script в мой $ PATH.

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

Исключение в потоке "основной" java.lang.NoClassDefFoundError: jline / ConsoleRunner Причина: java.lang.ClassNotFoundException: jline.ConsoleRunner в java.net.URLClassLoader $ 1.run (URLClassLoader.java:202) в java.security.AccessController.doPrivileged (собственный метод) в java.net.URLClassLoader.findClass (URLClassLoader.java:190) в java.og..loadClass (ClassLoader.java:307) в sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) в java.lang.ClassLoader.loadClass (ClassLoader.java:248)

Хорошо, jline.jar отсутствует в CLASSPATH, поэтому я проверил сценарии 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 таким образом.
Я что-то упустил?

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

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

В итоге: Проверьте cljr , торт и leiningen .

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

0 голосов
/ 09 декабря 2010

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

Для людей, которые не пишут инструменты, они либо работают над последней веткой, либоиз github, и поэтому они получают Clojure с помощью git pull или используют вышеупомянутый liningen, торт, cljr, против часовой стрелки (затмение), la clojure (intellij) или netbeans.

...