实现Clojure库

时间:2014-04-23 14:21:20

标签: java json clojure

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

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

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

之后有以下注释: 要查看此树可视化,请确保您具有可视化/目录。将protovis.clj中的 protovis-json-file 更改为visualize / 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)

*txt-files*中的clustered包括

(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 是你的visualize / protovis-3.2 / flare.js的完整的路径“和”删除每个文件的dir路径使得一切都更清洁“不是对我来说很清楚有人可以帮助阐明这个实现中发生了什么吗?

1 个答案:

答案 0 :(得分:1)

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

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

此外,此代码是概念证明(可以在库中),而不是库,因为它在文件中具有硬编码路径,并且在文件加载时依赖于副作用在那些硬编码值上。