java -jar指定外部配置文件

本文介绍了如何在SpringBoot项目中,将配置文件放置在jar包外部以方便修改,并详细说明了如何通过start.bat脚本启动jar应用,指定-Dspring.config.location参数指向外部配置目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景

spingboot项目部署jar时,需要时常修改配置,为了方便,将配置文件放到jar包外

操作步骤

  1. 在jar包同级目录下创建config文件夹(位置没有强制要求,为了方便而已)
    在这里插入图片描述在这里插入图片描述

  2. 在jar包同级目录下创建start.bat文件,并编辑内容

@echo off
:: 命令窗口标题
title yudibei_performance_test
chcp  65001

:: 用 -Dspring.config.location 指定配置文件路径, -Dfile.encoding=utf-8 要放在-jar前面,不会控制台中文乱码
java -Dfile.encoding=utf-8 -jar D:\jar_test\test.jar -Dspring.config.location=D:\jar_test\config 
pause
  1. 直接双击start.bat进行启动
    在这里插入图片描述

总结

启动jar之前设置参数 -Dspring.config.location 指向外部配置目录即可

### Java -jar 指定外部配置文件的方法 在实际开发中,有时需要通过 `java -jar` 命令启动应用程序并指定外部配置文件。这种方式可以灵活调整程序的行为而不必重新打包 JAR 文件。以下是具体方法及其参数说明。 #### 方法概述 可以通过 `-D` 参数向 JVM 传递系统属性,在 Spring Boot 或其他框架的应用中,通常会使用特定的键名来定位外部配置文件的位置。例如: ```bash java -jar your-application.jar -Dspring.config.location=/path/to/your/config-file.properties ``` 上述命令指定了一个名为 `/path/to/your/config-file.properties` 的外部配置文件位置[^3]。 #### 示例代码 假设有一个简单的 Spring Boot 应用程序被打包成 JAR 文件,并希望加载外部配置文件 `application.properties`,其内容可能如下所示: ```properties app.name=MyExternalApp server.port=8090 ``` 启动时可执行以下命令: ```bash java -jar my-spring-boot-app.jar -Dspring.config.location=/opt/my-config/application.properties ``` 此命令会让 Spring Boot 加载 `/opt/my-config/application.properties` 中的内容作为主要配置文件。 如果需要同时加载多个配置文件,则可以用逗号分隔路径列表: ```bash java -jar my-spring-boot-app.jar -Dspring.config.location=/opt/my-config/application.properties,/etc/default/myapp.properties ``` 注意:路径应为绝对路径,且确保运行环境中具有访问这些文件的权限。 #### Docker 配置场景下的扩展 当将应用部署至容器化环境(如 Docker)时,同样可通过 `--spring.config.location` 参数指定配置文件路径。例如,在 Dockerfile 中定义 ENTRYPOINT 如下: ```dockerfile FROM openjdk:8-jdk-alpine COPY my-spring-boot-app.jar /app/app.jar COPY application.properties /config/application.properties WORKDIR /app ENTRYPOINT ["java", "-jar", "app.jar", "--spring.config.location=/config/application.properties"] ``` 构建镜像后,运行容器即可自动加载指定外部配置文件[^5]。 --- ### 注意事项 1. **优先级**:外部配置文件的优先级高于内置配置文件中的同名属性。这意味着如果有重复项,外部配置将会覆盖默认值。 2. **兼容性**:某些旧版框架可能不支持直接通过 `-D` 参数指定配置文件路径,请查阅对应文档确认适用范围。 3. **安全性**:敏感数据不应硬编码于脚本或公开存储区域;建议采用加密方式处理重要信息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值