簡體   English   中英

為什么在這種情況下clojure.java.io/resource不起作用?

[英]Why doesn't clojure.java.io/resource work in this case?

我正在嘗試通過clojure.java.io/resource加載絕對資源,但找不到它。 但是,我可以通過其他方式檢索它。

下面的示例演示了這一點。 在基本src目錄中為一個新項目創建一個文件,然后嘗試通過它定位。 resource不會成功,但是我可以通過它獲得成功。 System類上的.getResource

我如何通過加載。 resource 任何想法為什么會這樣?

例如

C:\Users\username\temp>lein new foo
Generating a project called foo based on the 'default' template.
To see other templates (app, lein plugin, etc), try `lein help new`.

C:\Users\username\temp>cd foo   
C:\Users\username\temp\foo>cd src    
C:\Users\username\temp\foo\src>echo hello > world.txt   
C:\Users\username\temp\foo\src>cd ..    
C:\Users\username\temp\foo>lein repl

...    

user=> (require ['clojure.java.io :as 'io])
nil
user=> (io/resource "/world.txt")
nil
user=> (.getResource System "/world.txt")
#<URL file:/C:/Users/username/temp/foo/src/world.txt>
user=>

您需要將src添加到project.clj中的資源路徑中:

:resource-paths ["src"]

這些目錄包含在類路徑中,因此可用於加載資源。

另外,您需要刪除前導/

(io/resource "world.txt")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM