clojure.java.sh:没有这样的文件或目录

时间:2014-05-10 05:39:56

标签: shell clojure graphviz

我编写了一个汇编.dot文件的程序,并希望使用Clojure的sh来编写命令。具体来说,我使用以下函数来执行此操作:

(defn compile-graphviz
  "Dumps graphviz-string to a file, then compiles it using dot."
  [graphviz-string]
  (do
    (spit "./tree.dot" graphviz-string)
    (sh "dot -Tpng \"/.tree.dot\" -o\"/.tree.png\"")))

但是,当我运行它时,第二部分失败,在REPL上给出以下错误消息:

IOException error=2, No such file or directory  java.lang.UNIXProcess.forkAndExec (UNIXProcess.java:-2)

我查看了sh的文档和示例,我无法理解为什么这不起作用。我错过了什么?

1 个答案:

答案 0 :(得分:5)

根据the documentationsh使用execve语义:

(sh "dot" "-Tpng" "/.tree.dot" "-o" "/.tree.png")