2012-06-26 2 views
2

ошибка, как показано на странице Noir об ошибке: java.io.FileNotFoundException: Could not locate boundaries/lat_long__init.class or boundaries/lat_long.clj on class pathClojure Пространства имен преобразования - в _

код, который требует его:

(ns boundaries.views.boundary 
    (:use noir.core 
     hiccup.core 
     hiccup.page-helpers) 
    (:require 
    [boundaries.lat-long :as lat-long] 
    [noir.response :as resp])) 

Почему ищет lat_long вместо указанного lat-long? границы/lat-long.clj существует, а также соответствующие границы.lat-long namespace.

+0

Привет Крис, я думаю, что это ответ: http://stackoverflow.com/q/4420944/151650 – DanLebrero

ответ

4

виртуальная машина не позволяет - с в именах классов, так что компилятор Clojure преобразует их в _ s

проблема является, скорее всего, с зависимостями project.clj.

При диагностике такого рода вопрос:

  • является пространство имен доступны из РЕПЛ?
  • Файл .class отображается в каталоге lib для проекта?
  • повторно запустить lein deps
+0

Я вижу. Поскольку я учусь, я хотел бы придерживаться конвенций. Разработчики Clojure обычно используют camelcase, как в Java? – Chris

+0

Я действительно не тот, кто спрашивает о java-соглашениях, надеюсь, кто-то будет комментировать ... Это прекрасно использовать - в именах мне просто не нравится. я удалю это из своего сообщения, это слишком упрямо для SO IMHO ;-) –

+0

О нет! К счастью, я хочу сделать то, что используют другие люди, и поскольку такие соглашения и персональная эстетика важны – Chris

0

Вы должны переименовать границ/LAT-long.clj к границам/lat_long.clj.

Обратите внимание, что вам не нужно менять имя пространства имен. Соглашение clojure должно использовать «-» для имен функций и имен.

От ответа Стюарта Сьерра на https://stackoverflow.com/a/4451693/151650: «Это необходимое обходное решение для взаимодействия Java».

Смежные вопросы