You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot active profile在Windows不生效但Linux正常问题排查

Spring Boot跨平台激活配置文件失败原因分析

核心原因:Windows与Linux命令行的参数解析逻辑差异

  • Shell/CMD参数处理不同:Linux下的bash等Shell会将--spring.profiles.active=dev直接作为应用参数传递给java -jar指定的Jar包,Spring Boot能正常读取该配置;但Windows的CMD对--开头的参数解析逻辑不同,它可能将这类参数识别为JVM或系统级参数,而非传递给Spring Boot应用的参数,导致应用无法读取到激活配置的指令。
  • PowerShell的特殊拦截:若使用Windows PowerShell执行命令,--在PowerShell中是参数终止符,会阻止后续参数传递给目标应用,直接使用--spring.profiles.active=dev会被PowerShell拦截,Spring Boot自然无法接收到该配置项。

补充验证方案

可以在Windows下修改命令写法验证问题:

  • 若使用CMD,将参数放在--之后(明确区分JVM参数和应用参数):
    java -jar feed.jar -- --spring.profiles.active=dev
    
  • 若使用PowerShell,使用--%跳过PowerShell的参数解析:
    java -jar feed.jar --% --spring.profiles.active=dev
    

内容的提问来源于stack exchange,提问作者Chris Milburn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 23:30:57