环境变量,JAR和批处理文件

4

我有一个问题。 我试图运行一个从环境变量获取数据的JAR文件。 如果我打开一个CMD窗口并手动使用 set 命令设置每个环境变量,然后使用 java -jar MyFile.jar 运行JAR文件,一切正常。
然而,当我创建一个包含我之前执行的确切命令的批处理文件时,JAR文件找不到环境变量。 我尝试在所有命令之后使用 cmd /k 以尝试使用 echo 访问环境变量,并且它们可以正常工作。 请问我做错了什么?谢谢。
编辑:
这是我的批处理文件:

SET ATR1=ATR1_VALUE  
SET ATR2=ATR2_VALUE  
SET ATR3=ATR3_VALUE  
JAVA -JAR MyFile.jar

使用这个文件时,我的JAR无法成功访问环境变量。
但是,如果我将每行代码单独运行,JAR文件可以正常工作。
我在代码中使用System.getenv()来访问环境变量。
我尝试过使用setx,但它没有改变任何东西。

1
set 命令用于设置仅在当前会话中持续的变量。如果您想要在会话之间保留环境变量,请使用 setx 命令。 - npocmaka
每个值后面有两个空格。如果这是你的代码,那么它们是变量的一部分(不知道这是否会影响你的Java)。为了避免这种情况,请使用“set“ATR1=ATR1_VALUE””。 - Stephan
那两个空格是因为它们被解释为换行符。它们不在实际文件中。 - Decayer4ever
1个回答

3

It's

SET "ATR=ATR1_VALUE"

或者

SETX ATR "ATR1_VALUE"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接