【问题标题】:Implementing a Clojure library实现 Clojure 库
【发布时间】:2014-04-23 14:21:19
【问题描述】:

我一直在尝试实现https://github.com/herdrick/hierarchical-text/blob/master/src/hierarchical-classifier.clj,同时将*directory-string* 中的路径更改为包含文本文件的保管箱。在 REPL 中为 org.apache.commons.io.FileUtils/listFiles 发出了编译器异常,给出了 java.lang.ClassNotFoundException

除了我添加的链接中的源代码

(def clustered (cluster *txt-files*))

后面有以下注释: 要查看可视化的这棵树,请确保您拥有可视化/ 目录。将 protovis.clj 中的 protovis-json-file 更改为您的 visual/protovis-3.2/flare.js 的 完整 路径 然后:

(def json (.replace (pof->js clustered 3) "/path/to/documents/" ""))
 ;;I have left the path to documents here for generality, the path is fully specified in my text editor 
 ;;removing the dir path to each file keeps everything much cleaner.
(write-protovis-file json)

clustered 中的*txt-files* 包括

(def *txt-files* (seq (org.apache.commons.io.FileUtils/listFiles (new java.io.File *directory-string*) nil false)))

这是导致编译器异常的部分。

我不知道如何摆脱 org.apache 的编译器异常...此外,“要查看此树可视化,请确保您具有可视化/目录。更改 protovis-json protovis.clj 中的 -file 成为您的可视化/protovis-3.2/flare.js 的 完整 路径,并且“删除每个文件的 dir 路径可以让一切都更干净”不是我清楚。有人可以帮助阐明这个实现中发生了什么吗?

【问题讨论】:

    标签: java json clojure


    【解决方案1】:

    您需要将 apache.commons.io 的 mvn 依赖项添加到 project.clj 中的 :dependencies 向量中:

    [org.apache.commons/commons-io "1.3.2"]

    此外,此代码是概念证明(可以制成库),而不是库,正如它在文件中具有硬编码路径以及文件加载时的副作用取决于在那些硬编码的值上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-16
      • 2014-10-31
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多