【Java】java -jar 读取jar包之外的yml

需求描述

springboot项目接入nacos配置,代码中使用bootstrap.yml来指定nacos信息,为了防止不同环境的来回切换,服务器中都单独在放一个bootstrap.yml,来指定具体环境的nacos配置,如sit服务器使用sit的nacos配置,uat服务器使用uat的nacos配置文件。

服务其中打出来的jar中已经包含了各个bootstrap-xxx.yml文件(没有排除响应的配置文件),jar所在位置(同级)也引入了外部的bootstrap.yml来引入nacos配置。

目的:运行时,希望使用的时外部 bootstrap.yml 文件。

bash 复制代码
nohup java -jar -Xms512M -Xmx512M -Duser.timezone=GMT+8 -Dlog.path=/applog/logs  -Dspring.profiles.active=local xxx-1.0.0-release.jar  -jasypt.encryptor.password=xxxsalt &

如果打包时,排除jar中的配置文件,那么用上边的启动命令是可以的。如果jar包中包含项目配置文件,上边命令有时可以有时不可以(那就是不可以)。

解决方法

使用-D命令设置系统属性

bash 复制代码
nohup java -jar -Xms512M -Xmx512M -Duser.timezone=GMT+8 -Dlog.path=/applog/logs -Dspring.config.location=./bootstrap.yml xxx-1.0.0-release.jar  -jasypt.encryptor.password=xxxsalt &

shell脚本命令中使用-Dspring.config.location=./bootstrap.yml,指定外部配置文件。

参考文章

https://blog.csdn.net/qq_34484062/article/details/128021066

这种感觉不是很好使

相关推荐
爱干饭的boy36 分钟前
手写Spring底层机制的实现【初始化IOC容器+依赖注入+BeanPostProcesson机制+AOP】
java·数据结构·后端·算法·spring
影子240141 分钟前
java jdbc连接sqlserver2008R2版本数据库报错,驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
java·数据库·ssl
失散131 小时前
分布式专题——10.1 ShardingSphere介绍
java·分布式·架构·shardingsphere·分库分表
记得开心一点嘛1 小时前
手搓Tomcat
java·tomcat
lightqjx1 小时前
【C++】string类 模拟实现
java·开发语言·c++
echoyu.2 小时前
初识微服务-nacos配置中心
java·微服务
只_只2 小时前
B1013 PAT乙级JAVA题解 数素数
java·开发语言
喜欢你,还有大家2 小时前
Nginx服务——安装与搭建
java·服务器·nginx
小玉起起2 小时前
IntelliJ IDEA 2025.1 Java Stream Debugger 快速使用指南
java·intellij-idea·idea
龙卷风04052 小时前
SpringAI调用第三方模型增加自定义请求参数
java·后端