Java 如何从jar访问类路径资源?

Java 如何从jar访问类路径资源?,java,spring,spring-boot,jar,path,Java,Spring,Spring Boot,Jar,Path,我正在编写一个Spring Boot web应用程序 在我的应用程序中,我需要能够下载打包到可执行应用程序.jar中的zip文件 我正在使用ClassPathResource加载该文件的流: Resource applier=new ClassPathResource("applier/com.itnsa.patch.applier-1.0.25-SNAPSHOT-package.zip"); if (applier.exists()) {//do stuff} zip文件位于/src/mai

我正在编写一个Spring Boot web应用程序

在我的应用程序中,我需要能够下载打包到可执行应用程序.jar中的zip文件

我正在使用ClassPathResource加载该文件的流:

Resource applier=new ClassPathResource("applier/com.itnsa.patch.applier-1.0.25-SNAPSHOT-package.zip");
if (applier.exists()) {//do stuff}
zip文件位于/src/main/resources/applier中

在我的应用程序的其他一些类中,我已经使用此方法从/src/main/resources/exception检索了一些.txt文件,并且一切正常。当我尝试访问zip时,exists方法返回false

访问zip归档文件时我做错了什么?我怎样才能做到这一点

Resource applier=new ClassPathResource("applier/com.itnsa.patch.applier-1.0.25-SNAPSHOT-package.zip");
if (applier.exists()) {//do stuff}
它应该可以工作,我尝试了相同的文件名和它返回true的相同的文件夹结构,确保jar文件在类路径上。 如果您使用任何IDE进行/使用它,请确保jar文件位于类路径上。 还有另一种方法,你可以利用下面给出的,但这不是你的情况

InputStream in = getClass().getResourceAsStream("/fileName.zip"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(in));

ClassPathResource(“/applier”)
应该足够了。不需要显示应该使用的wchichjar文件。当应用程序运行时,jar应该添加到classpost中。问题是我无法访问applier/myZip.zip exists()方法中的zip文件。您是否尝试从
/
启动路径?尝试解压缩speing引导jar并确保资源确实在那里。是的,它在那里,在这条路径上,我真的不明白为什么它以前不工作,但现在它工作了,我所做的只是在mavenit中进行了
干净的安装
,有时会发生,但现在很高兴看到它工作了!!!太好了,干杯!!