如何在运行时获取leiningen项目的根目录?
我的问题是我想将sqlite文件放在根目录下,并通过不同源文件的源代码访问它。
我不喜欢使用相对路径,所以我该怎么做?
答案 0 :(得分:7)
以下两种方法可以获取当前工作目录的完整路径,当您使用lein repl
或lein run
启动Clojure时,该路径将成为项目的主目录:
(System/getProperty "user.dir")
和
(.getCanonicalPath (clojure.java.io/file "."))
在第二种方法中,您可以插入任何路径字符串而不是“。”,如果字符串不包含初始反斜杠,它将相对于Clojure的当前工作目录进行解释。 (我不确定Windows系统上的行为是否完全相同。)
(第一种方法来自this question;那里的答案可能对您的情况有用。)
答案 1 :(得分:0)
您可以将sqlite文件放在resources文件夹中,然后可以使用clojure.java.io/resource在运行时检索它吗?