2

Noir エラー ページに表示されるエラー:java.io.FileNotFoundException: Could not locate boundaries/lat_long__init.class or boundaries/lat_long.clj on class path

それを必要とするコード:

(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ですか? bounds/lat-long.clj と、対応するboundary.lat-long 名前空間が存在します。

4

2 に答える 2

4

JVM ではクラス名に s を使用できない-ため、Clojure コンパイラはクラス名を_sに変換します。

この問題は、project.clj の依存関係にある可能性が最も高いです。

この種の問題を診断する場合:

  • 名前空間は REPL から利用できますか?
  • .class ファイルはプロジェクトの lib ディレクトリに表示されますか?
  • 再実行lein deps
于 2012-06-26T02:06:53.177 に答える
0

境界/lat-long.clj の名前を境界/lat_long.clj に変更する必要があります。

名前空間の名前を変更する必要はありません。Clojure の規則では、関数と名前空間の名前に「-」を使用します。

https://stackoverflow.com/a/4451693/151650での Stuart Sierra の応答から:「これは、Java の相互運用性のために必要な回避策です。」

于 2012-06-26T02:43:37.630 に答える