【发布时间】:2015-07-21 10:44:10
【问题描述】:
我有一个程序需要在运行前读取 csv 文件。此数据位于我的 clojure 项目的资源文件夹中。
程序运行良好,当从"resources/data.cv" 啜饮时,这会导致.jar 不是独立的,而是需要资源文件夹。
如何确保运行lein uberjar时资源也被编译?
我试过(csv/slurp-csv (io/resource "mma_duffing.csv") 但是.jar 文件将无法运行。非常感谢任何帮助!
【问题讨论】:
-
如果你这样做了
(println (slurp (io/resource "mma_duffing.csv"))),你能读到文件吗? -
io-resources 从 jar 运行时的工作方式略有不同,资源将具有如下协议:
jar:file:/blablabla/bla.jar!/data.csv.. 如果此处的 csv 库使用某种自定义文件阅读器,则可能不会知道如何处理这个协议。检查 csv-library 的源代码,看看它是如何访问文件的。 -
试过这个减号
println,因为我不需要它,而且效果很好。不太清楚出了什么问题,但谢谢!
标签: java csv clojure leiningen