如何从jar访问ClassPath资源?

时间:2017-07-31 10:53:45

标签: java spring spring-boot jar path

我正在编写一个Spring Boot网络应用程序。

在我的应用程序中,我需要能够下载打包到可执行应用程序.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存档时我做错了什么?我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

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));