获取leiningen项目根目录

时间:2014-10-14 10:02:11

标签: clojure leiningen

如何在运行时获取leiningen项目的根目录?

我的问题是我想将sqlite文件放在根目录下,并通过不同源文件的源代码访问它。

我不喜欢使用相对路径,所以我该怎么做?

2 个答案:

答案 0 :(得分:7)

以下两种方法可以获取当前工作目录的完整路径,当您使用lein repllein run启动Clojure时,该路径将成为项目的主目录:

(System/getProperty "user.dir")

(.getCanonicalPath (clojure.java.io/file "."))

在第二种方法中,您可以插入任何路径字符串而不是“。”,如果字符串不包含初始反斜杠,它将相对于Clojure的当前工作目录进行解释。 (我不确定Windows系统上的行为是否完全相同。)

(第一种方法来自this question;那里的答案可能对您的情况有用。)

答案 1 :(得分:0)

您可以将sqlite文件放在resources文件夹中,然后可以使用clojure.java.io/resource在运行时检索它吗?