clojure.java.io/resource可以从classpath加载文件但是在jar文件之外吗?当我把文件放在jar文件中时,它会加载文件但是当我把文件放在jar之外但是在classpath中它不会加载文件。
实施例
Jar名称:hello.jar 在jar中有文件hello.txt
java -jar hello.jar
我发现使用line bellow
读取文件hello.txt文件没有问题(->
"hello.txt"
(clojure.java.io/resource)
(clojure.java.io/file)
(slurp))
但是当我把hello.txt放在jar之外但是在classpath中时,它无法加载文件。
java -cp . -jar hello.jar
与hello.jar文件在同一目录下的hello.txt文件。
BR, 马蒙
答案 0 :(得分:2)
您不能以这种方式混合-cp
和-jar
cmdline参数。你可以做......
java -cp ".:hello.jar" com.foo.Class # should use ; instead of : on Windows
或添加
Class-Path: /some/dir/with/hello /some/dir/with/hello/hello.jar
输入包含本地目录的jar META-INF/MANIFEST.MF
文件。(details)
我建议你不要使用。作为目录,因为如果jar文件移动,这将容易出错或者可能出现安全问题。