2010-09-16 3 views
3
[email protected]:~/clojure$ clojure 
Clojure 1.0.0- 
user=> (require 'clojure.contrib.str-utils) 
java.io.FileNotFoundException: Could not locate clojure/contrib/str_utils__init.class or clojure/contrib/str_utils.clj on classpath: (NO_SOURCE_FILE:0) 
user=> 

Что я сделал неправильно при установке clojure? Почему can not clojure определяет мои классы java? У меня установлена ​​Java.help with running clojure, возможный классный путь

[email protected]:~/clojure$ sudo apt-get install sun-java6-jre sun-java6-jdk 
sudo: unable to resolve host apollo 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
sun-java6-jre is already the newest version. 
sun-java6-jdk is already the newest version. 
0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded. 


[email protected]:~/clojure$ java -version 
    java version "1.6.0_20" 
    Java(TM) SE Runtime Environment (build 1.6.0_20-b02) 
    Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode) 
    [email protected]:~/clojure$ 

, пожалуйста, помогите! благодаря!

+0

Откуда у вас «Clojure», и как вы «установили» его? – Rayne

ответ

6

Это здорово, чтобы узнать, понять это вручную, так как понимание делает путь к классам мир лучше. На практике многие клуурцы используют leiningen, maven или торт.

Лично я рекомендовал бы использовать leiningen:

  • Wget http://github.com/technomancy/leiningen/raw/stable/bin/lein
  • сделайте это exacutable и сохранить его где-нибудь, как ~/бен или/USR/бен или любой другой.
  • Lein новый MY-ПРОЕКТ-NAME
  • Lein DEPS
  • Lein РЕПЛ
  • поредактируете!

Существует множество причин не использовать автоматизированный инструмент, и эти вещи не подходят всем. В течение времени, которое требуется, чтобы установить это для меня это стоит даже для простых однострочных.

+0

есть alsow проект cljr проверить это. – nickik

+0

Не нужно ли запускать «lein self-install» после загрузки скрипта lein? – dreish

+0

И хотя, когда я проверил страницу leiningen на gihub, этот шаг не находится в начатых инструкциях. Не думаю, что было бы больно запускать лейн самостоятельно –

1

str utils - это то, что поставляется с clojure-contrib. Это не стандартная java lib. Таким образом, просто установка java не поможет. Когда вы начинаете clojure, убедитесь, что clojure-contrib jar указан в пути к классам. Вы можете получить последнюю (1.2) clojure и clojure-contrib jar от clojure.org

Например, Это, как я начала REPL

java -server -cp ~/clojure-1.2.0.jar:~clojure-contrib-1.2.0.jar:. clojure.main --repl 
+0

спасибо за помощь, можете ли вы быть более конкретным? Я попытался запустить эту строку, и у меня получилось: http://pastebin.com/wjBrgDwM – vick

+0

эта команда специфична для моей машины. Общий способ вызова repl: java -cp {path-to-clojure-jar}: {path-to-clojure-contrib-jar} :. clojure.main --repl – letronje

+0

@ vick: вам нужно заменить '~/clojure-1.2.0.jar' и' ~ clojure-contrib-1.2.0.jar' (<- typo - следует читать '~/clojure-contrib ... ') с путями к фактическим копиям соответствующих банок вашей системы. Из текста вопроса я понимаю, что у вас есть копия 'clojure.jar' в' ~/clojure', поэтому вы будете использовать '~/clojure/clojure.jar'; если вы поместите вкладку contrib в один и тот же каталог, путь к ней будет похож. –

1

Я использую maven для обработки всех зависимостей, и это работает.

Я написал BlogPost здесь: http://learnclojure.blogspot.com/2010/08/clojure-emacs-swank-slime-maven-maven.html о том, как настроить установку рабочего Clojure/слизью с нуля на новой машине. Это занимает около минуты.

Во всяком случае, если все, что вы хотите, это работает РЕПЛ, то вы можете:

Установите Maven

Получить pom.xml из BlogPost, и поместить его в каталог.

В этой перспективе каталог $ МВН Clojure: Отв

Maven будет скачать все, что вам нужно, и начать Repl, который должен быть jline поддержкой, так что это на самом деле использовать.

Я знаю, что это работает на Ubuntu, он должен хорошо работать на всех других Linux и Mac OSX. Кто-нибудь знает, работает ли он на Windows?

Но если вы можете использовать emacs, сочетание clojure/emacs и слизи непревзойденно. Дайте мне знать, если у вас возникнут проблемы.