首页 > 解决方案 > 获取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
------/...
------/...

我只能设置属性文件的路径,其余的东西将由 apache 依赖类文件处理。如果这些属性在 jar 位置本身可用,它在 IDE 和 jar 中工作正常。

所以当我使用上面的 cmd 在 gcp 中部署这个项目时,我可以看到这个项目被复制到 gcp 应用引擎的 /workspace/ 目录下。所以要么我需要在 gcp 的 /workspace/ 目录下复制这个属性文件,要么我需要访问 jar 内的属性文件,但我只能传递路径(字符串)。在 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");

标签: javaspring-bootpropertiesresourcesgcloud

解决方案


我想你可以把你的配置文件放在 src/main/resources 中,因为我可以看到你的配置在 src 目录之外,所以在课堂上你需要该文件,你可以getClass().getClassLoader().getResource("config/bin/config.properties")将文件作为 URL 获取并打开 InputStream为了它。


推荐阅读