【发布时间】:2015-08-11 08:02:26
【问题描述】:
我有一个简单的问题。
我正在尝试运行一个从环境变量中获取数据的 JAR 文件。
如果我打开 CMD 窗口并使用 set 命令手动设置每个环境变量,然后使用 java -jar MyFile.jar 运行 JAR 文件,一切正常。
但是,当我创建一个包含我之前执行的确切命令的批处理文件时,JAR 文件找不到环境变量。在所有命令尝试使用echo 访问环境变量之后,我尝试使用cmd /k,它们可以工作。谁能告诉我我在这里做错了什么?谢谢。
编辑:
这是我的批处理文件:
SET ATR1=ATR1_VALUE
SET ATR2=ATR2_VALUE
SET ATR3=ATR3_VALUE
JAVA -JAR MyFile.jar
使用此文件,我的 JAR 无法成功访问环境变量。
但是,如果我自己运行每一行,JAR 文件就可以工作。
我正在使用 System.getenv() 访问我的代码中的环境变量。
我试过使用setx,但没有任何改变。
【问题讨论】:
-
set设置仅在当前会话中持续的变量。如果您想要在会话之间继续存在的环境变量,请检查setx命令。 -
每个值后面有两个空格。如果那确实是您的代码,它们是您的变量的一部分(不知道这是否对您的 java 有任何影响)为避免这种情况,请使用
set "ATR1=ATR1_VALUE" -
这两个空格在那里是因为它们被解释为换行符。它们不在实际文件中。
标签: java windows batch-file jar