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

DOS Shell设置含%的环境变量后Java System.getenv丢失%的原因及解决咨询

问题原因

%是Windows命令提示符(cmd.exe,即你所说的DOS Shell)的内置特殊字符,作用是标记环境变量的引用边界。当你执行set MY_VAR=MY%VALUE命令时,cmd会自动将%VALUE识别为对名为VALUE的环境变量的引用,由于你当前运行环境中没有定义VALUE变量,cmd会直接将%VALUE替换为空值,最终MY_VAR的实际赋值结果为MYVALUE,因此Java读取到的环境变量自然不存在%字符。

解决方案

要在cmd中设置包含字面量%的环境变量,只需要用连续两个%进行转义,单个%%最终会被cmd解析为单个字面量%,修改后的启动命令如下:

set MY_VAR=MY%%VALUE
my_jar.jar MyClass

该配置下Java代码无需做任何调整,通过System.getenv("MY_VAR")即可正常读取到完整的MY%VALUE取值。

内容的提问来源于stack exchange,提问作者Ann-Christin Lindras

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:36:03