Настройка CLASSPATH для проекта Clojure - PullRequest
2 голосов
/ 28 марта 2011

У меня простая структура проекта:

Base Dir
   src ;; Pile of Clojure files
   lib ;; Jar files

Чтобы экспортировать путь к классам: $ export CLASSPATH = $ CLASSPATH: источник: lib / *

Попытка запустить файл Clojure: java -cp $ CLASSPATH -jar lib / clojure.jar src / wizard-game.clj
Но я получил:

Исключение в потоке "main" java.io.FileNotFoundException: не удалось найти clojure / contrib / trace_ init.class или clojure / contrib / trace.clj на пути к классам:
Причина: java.io.FileNotFoundException: Не удалось найти clojure / contrib / trace
_init.class или clojure / contrib / trace.clj в пути к классам:

Хорошо, это проблема с classpath, но что / где я делаю неправильно?

Есть ли лучший способ попробовать запустить его?

UPDATE:
Я попробовал эту команду:

java -classpath $ CLASSPATH clojure.main src / wizard-game.clj

Теперь все нормально.

Ответы [ 2 ]

7 голосов
/ 28 марта 2011

Из справочных страниц java относительно опции -jar:

Когда вы используете эту опцию, файл JAR является источником всех пользовательских классов, а другие параметры пути к пользовательским классамигнорируется.

Так что это немного обидно, но хорошая новость в том, что вы можете обойти это, используя другой синтаксис запуска ( ссылка на clojure.org ):

java -cp $CLASSPATH clojure.main src/wizard-game.clj

В качестве альтернативы используйте такой инструмент, как Leiningen , чтобы управлять пути к классам вашего проекта и зависимостями для вас!

3 голосов
/ 28 марта 2011

Это ответ на ваш вопрос «Как запустить автономный файл Clojure в Lein?»Вы должны посмотреть на лейн беги.Я не уверен в текущем состоянии, но был отдельный плагин Lein, и теперь по крайней мере некоторые (возможно, все) функциональные возможности встроены в lein по умолчанию.

Попробуйте запустить lein help run по команделиния для быстрого ознакомления.

Автономный проект lein-run.Документация может быть полезной.Не уверен на 100%, совпадает ли он со встроенным lein run, но я знаю из собственного использования, по крайней мере, некоторые из них.

https://github.com/sids/lein-run

...