我有这个:
(import 'java.lang.Runtime)
(defn foo []
(println (.getOutputStream (. (Runtime/getRuntime) exec "pwd"))))
它成功返回一个java.io.OutputStream(这里的java文档:http://docs.oracle.com/javase/1.5.0/docs/api/java/io/OutputStream.html
我现在如何使用clojure / java interop编写此流?我想得到一个'pwd'命令的字符串。
由于
答案 0 :(得分:1)
您可以使用slurp。此外,您必须使用getInputStream而不是getOutputStream方法(您希望使用进程的输入流)。这段代码应该有效:
(println (slurp (.getInputStream (.exec (Runtime/getRuntime) "pwd"))))
答案 1 :(得分:1)
这不是问题的直接答案,但认为对其他人提及https://clojuredocs.org/clojure.java.shell/sh在这种情况下也会有所帮助可能会有所帮助。
答案 2 :(得分:0)
这可能不是获取当前工作目录的最佳方式。 看看这里:Getting the Current Working Directory in Java