あなたはこのトリックを使って、いくつかの情報を得ることができる:
(defn files-for-ns [ns-sym]
(->> (ns-publics ns-sym)
keys
(map resolve)
(map meta)
(map :file)
set))
をしたり、完全なパスたい場合:
(require '[clojure.java.io :as io])
(defn files-for-ns [ns-sym]
(->> (ns-publics ns-sym)
keys
(map resolve)
(map meta)
(map :file)
set
(keep identity)
(map io/resource)
(map str)))
例:
(use 'clojure.pprint)
(pprint (files-for-ns 'clojure.core))
("jar:file:/Users/Borkdude/.m2/repository/org/clojure/clojure/1.9.0-alpha10/clojure-1.9.0-alpha10.jar!/clojure/gvec.clj"
"jar:file:/Users/Borkdude/.m2/repository/org/clojure/clojure/1.9.0-alpha10/clojure-1.9.0-alpha10.jar!/clojure/core_proxy.clj"
"jar:file:/Users/Borkdude/.m2/repository/org/clojure/clojure/1.9.0-alpha10/clojure-1.9.0-alpha10.jar!/clojure/core.clj"
"jar:file:/Users/Borkdude/.m2/repository/org/clojure/clojure/1.9.0-alpha10/clojure-1.9.0-alpha10.jar!/clojure/core_print.clj"
"jar:file:/Users/Borkdude/.m2/repository/org/clojure/clojure/1.9.0-alpha10/clojure-1.9.0-alpha10.jar!/clojure/core_deftype.clj"
"jar:file:/Users/Borkdude/.m2/repository/org/clojure/clojure/1.9.0-alpha10/clojure-1.9.0-alpha10.jar!/clojure/genclass.clj")
私が探しているものですが、名前空間を読み込んだときにファイルが間違って綴られているのを知っています...申し訳ありませんx/y/z.cljには – zcaudate
がありません。既にロードされているファイルではなく、ロードしようとしているファイルです。 – zcaudate
申し訳ありませんが、あなたが何を意味しているかは完全にわかりません。 –