clojure - Clojure 应用程序中的资源

标签 clojure leiningen

我在 Clojure 项目(一个 GUI 应用程序)中使用 Leiningen,并在项目根目录下创建了一个“资源”目录来保存我的应用程序使用的图像。

当我在测试期间在本地运行我的应用程序时,我使用相对路径“resources/logo.png”获取图像,这工作正常。但是,当我使用 Leiningen 构建 uberjar 时,Leiningen 会将资源文件夹中的文件放入 JAR 的根文件夹中,因此我对资源文件的引用不再起作用。

使用 Leiningen 访问此类资源的正确方法是什么?

最佳答案

前面的回答者(skuro)指出我需要从类路径中获取文件。经过更多挖掘后,这似乎是适合我的案例的解决方案:

(.getFile (clojure.java.io/resource "foo.png"))

关于clojure - Clojure 应用程序中的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8009829/

相关文章:

clojure - 学习如何使用 Clojure(语言)和 Closure(Google 图书馆)

ruby - Scala 缺少哪些动态语言(如 Ruby 或 Clojure)的特性?

clojure - 无法在类路径上找到clojure/core/async__init.class或clojure/core/async.clj

clojure - 将 webapp 前端添加到现有 clojure 应用程序

clojure - 如何将关键字转换为字符串并保留冒号

exception-handling - Clojure 异常处理

java - Java Applets 的 future 是什么样的?

docker - 使用leiningen构建非uberjar Docker镜像

java - 如何在 Clojure 中扩展 protected 方法

clojure - 尝试将ring.middleware.json-params与compojure一起使用