java - 获取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");
解决方案
我想你可以把你的配置文件放在 src/main/resources 中,因为我可以看到你的配置在 src 目录之外,所以在课堂上你需要该文件,你可以getClass().getClassLoader().getResource("config/bin/config.properties")
将文件作为 URL 获取并打开 InputStream为了它。
推荐阅读
- css - css 文件中的 css 变量未正确处理
- ios - NavigationView 上的全屏平移滑动手势?
- mongodb - mongo 删除/拉深嵌套数组中的孙子项
- jdbc - 遇到 SQL 错误:net.snowflake.client.jdbc.SnowflakeSQLException: Statement is closed
- javascript - 从列表中循环javascript
- python - 在列表的每个元素中计算数学
- c# - 为该记录选择最近的一行,按两列分组
- java - 加密/解密大文件时出现 java.lang.OutOfMemoryError
- java - 我怎样才能让我的模拟器按钮出现?
- sql-server - 连接SQL Server,服务器名问题