【发布时间】:2014-03-03 20:43:01
【问题描述】:
更新:事实证明,在我进行的一些测试中,IDE 中的类路径设置不正确。下面的 sn-p 可以正常工作。这不再是问题。
我正在尝试在将部署在 JAR 中的文本文件中设置一些属性/配置。
我希望用户能够提供他们自己的属性/配置文件,该文件将覆盖 JAR 中使用的文件,因此只有在用户提供的文件不存在时才会使用 JAR 中的文件。
我正在使用 Class.getResource(path),它应该能够找到相对和绝对(带有前导斜杠)文件。
给定 JAR 中的以下文件层次结构:
<jar-file>/SomeClass.class
<jar-file>/conf/config-file.txt
和一个可选文件
<some-classpath-folder>/conf/config-file.txt
我正在尝试执行类似下面的 sn-p 的操作,这样只有在类路径的绝对文件夹 conf 中找不到该文件时,才会从 JAR 内的相对 conf 文件夹中加载该文件:
Class clasz = SomeClass.class;
res = clasz.getResource("/conf/config-file.txt"); // absolute file not found, note leading-slash
if (res == null)
res = clasz.getResource("conf/config-file.txt"); // relative file is found, No leading-slash
找到了相对文件(来自 JAR),但没有找到来自类路径的绝对文件。
调用 System.getProperty("java.class.path") 显示
有没有办法知道在搜索文件时扫描了哪些文件夹?或者对这里出了什么问题有什么建议?
TIA
【问题讨论】:
标签: java properties classloader properties-file