Не могу загрузить файл - PullRequest
1 голос
/ 10 января 2012

У меня есть файл male_female.clj в следующем каталоге Windows:

C:\Documents and Settings\vreinpa\My Documents\Books\ProgrammingClojure\code\src\examples

Перед запуском REPL я переключаюсь в этот каталог:

U:\>c:
C:\>cd C:\Documents and Settings\vreinpa\My Documents\Books\ProgrammingClojure\code\src\examples

Затем запускаюREPL:

C:\Documents and Settings\vreinpa\My Documents\Books\ProgrammingClojure\code\src\examples>lein repl
Warning: classpath not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic classpath or change the name.
REPL started; server listening on localhost:13278.

Затем я пытаюсь загрузить файл, но получаю следующую ошибку:

user=> (load-file "male_female.clj")
user=> FileNotFoundException male_female.clj (The system cannot find the file specified)   java.io.FileInputStream.open (:-2)

Что я здесь не так делаю?Файл определенно находится в каталоге, в который я изменил перед запуском REPL.

1 Ответ

3 голосов
/ 10 января 2012

Работаете ли вы с Programming Clojure repo ?Я просто клонировал его и попробовал то же самое (хотя и на Mac), и у меня возникла та же ошибка.

Если да, попробуйте запустить lein repl из корня репозитория Git, а затем используйте (load "examples/male_female").Затем вы можете получить доступ к определениям в этом файле, переключившись на пространство имен с (in-ns 'examples.male-female) или полностью с полностью определенным именем: examples.male-female/m и т. Д. Это сработало для меня.

Я не уверен, гдеload-file выглядит, но я думаю load будет выглядеть в Java classpath.Вы можете проверить путь к классу из REPL Clojure с помощью (System/getProperty "java.class.path").

edit

Я экспериментировал с ним после прочтения документов на load-file и обнаружил, что это тоже работает: (load-file "src/examples/male_female.clj"), независимо от того, где я был в проекте.Это может быть связано с Leiningen и с тем, что он считает корнем проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...