【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

这种感觉不是很好使

相关推荐
沛沛老爹2 分钟前
Web转AI架构篇:Agent Skills vs MCP-混合架构设计模式实战指南
java·前端·人工智能·架构·llm·rag
独自破碎E9 分钟前
Java的CMS垃圾回收流程
java·开发语言
oioihoii16 分钟前
C++线程编程模型演进:从Pthread到jthread的技术革命
java·开发语言·c++
醇氧37 分钟前
SqlLogInterceptor mybatis配置打印SQL
java·sql·mybatis
Elcker38 分钟前
JAVA-Web 项目研发中如何保持团队研发风格的统一
java·前端·javascript
a程序小傲1 小时前
京东Java面试被问:多活数据中心的流量调度和数据同步
java·开发语言·面试·职场和发展·golang·边缘计算
三金121381 小时前
Java定时任务Schedule详解及Cron表达式实践
java·开发语言
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-数据库 表结构 & 完整外键依赖关系梳理
java·数据库·人工智能·软件工程
Wpa.wk2 小时前
性能测试 - 性能监控命令top,ps
java·经验分享·测试工具
Miss_Chenzr2 小时前
Springboot企业人事管理系统mi130(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring boot