Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检索存储在jar中的文件的绝对路径_Java - Fatal编程技术网

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

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

我有一个文件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,但我似乎无法将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;让它工作。