如何检索存储在jar中的文件的绝对路径

时间:2015-10-22 18:26:51

标签: java

我有一个文件,(" hwc.bat")存储在我的项目资源文件夹中:" project / res / HWC / hwc.bat"。

我正在一个类中编写代码" / src / test / java /.../ aTest.java"

我希望能够检索文件hwc.bat的绝对路径,但是使用getResource并不适合我。以下是我一直在尝试的内容:

final URL resource = this.getClass().getClassLoader().getResource("hwc.bat");
absolutePath = Paths.get(resource.toURI()).toString();

我已经尝试了很多变种" hwc.bat",包括" /hwc.bat"或者" / res / HWC / hwc .bat",但我似乎无法将网址变为null。

这是我的项目设置图片,只是为了更好地了解文件的位置以及我尝试做的事情/所有事情的背景。

Image of Class Layout

2 个答案:

答案 0 :(得分:3)

ClassLoader().getResource只能找到包含在类路径中的资源。对于hwc.bat的当前位置,情况并非如此。

由于您使用的是Maven项目,因此放置文件的正确位置位于src/main/resources,以便通过ClassLoader.getResource("hwc.bat")找到该文件。

答案 1 :(得分:1)

您正在使用maven结构,因此您必须将资源文件放在src / main / resources