Java 如何检索存储在jar中的文件的绝对路径
我有一个文件hwc.bat存储在我的项目资源文件夹中:project/res/hwc/hwc.bat 我正在类/src/test/java/../aTest.java中编写代码 我希望能够检索文件hwc.bat的绝对路径,但使用getResource对我来说不起作用。以下是我一直在尝试的:Java 如何检索存储在jar中的文件的绝对路径,java,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(r
final URL resource = this.getClass().getClassLoader().getResource("hwc.bat");
absolutePath = Paths.get(resource.toURI()).toString();
我尝试了很多hwc.bat的变体,包括/hwc.bat或/res/hwc/hwc.bat,但我似乎无法将URL设置为空
这里是我的项目设置的图片,只是为了更好地了解文件的位置和我正在尝试做什么/所有事情的上下文
ClassLoader.getResource只能找到类路径中包含的资源。对于hwc.bat的当前位置,情况并非如此
由于您使用的是Maven项目,因此正确放置文件的位置是src/main/resources,以便通过ClassLoader.getResourcehwc.bat找到它 ClassLoader.getResource只能找到类路径中包含的资源。对于hwc.bat的当前位置,情况并非如此
由于您使用的是Maven项目,因此正确放置文件的位置是src/main/resources,以便通过ClassLoader.getResourcehwc.bat找到它 您使用的是maven结构,所以您必须将资源文件放在src/main/resources您使用的是maven结构,所以您必须将资源文件放在src/main/resources请看这里,请看这里解决方案是否有效。我将hwc.bat移动到src/main/resources/hwc/hwc.bat,然后调用final URL resource=this.getClass.getClassLoader.getResourceHWC/hwc.bat;让它工作。解决方案工作了。我将hwc.bat移动到src/main/resources/hwc/hwc.bat,然后调用final URL resource=this.getClass.getClassLoader.getResourceHWC/hwc.bat;让它工作。