获取Spring Boot jar中的资源文件夹的路径

问题描述

我正在尝试将Java应用程序项目转换为Spring Boot,并尝试通过使用以下cmd在gcp中部署此Spring Boot项目jar

gcloud app deploy <projectname>.jar

在我的应用程序内部,我正在使用需要2个属性文件的apache核心依赖项之一,并将其​​放置在项目目录下

--PROJECTNAME<root>
----/.idea
----/config/bin/config.properties
----/src
------/main
------/...
------/...

并且我只能为属性文件设置路径,其余的事情将由ap​​ache依赖类文件处理。如果这些属性在jar位置本身中可用,则在IDE和jar中都可以正常工作。

因此,当我使用以上cmd在gcp中部署此项目时,我可以看到此项目已复制到gcp应用引擎中的/ workspace /目录下。因此,要么我需要在gcp中的/ workspace /目录下复制此属性文件,要么需要访问jar中的属性文件,但是我只能传递path(String)。 在apache类文件中,下面的代码用于读取属性文件。

BufferedReader reader = Files.newBufferedReader((new File( <path which i can pass> + "/bin/config.properties")).toPath(),Charset.defaultCharset());
and 
FileInputStream fis = new FileInputStream(<path which i can pass> + "/bin/config.properties");

解决方法

我想您可以将配置文件放入src / main / resources中,因为我看到您的配置位于src dir之外,因此在类中,您需要执行getClass().getClassLoader().getResource("config/bin/config.properties")文件才能获取文件作为URL,并为其打开InputStream。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...