【问题标题】:Environment variables, JAR and batch files环境变量、JAR 和批处理文件
【发布时间】: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


【解决方案1】:

这是

SET "ATR=ATR1_VALUE"

SETX ATR "ATR1_VALUE"

【讨论】:

    猜你喜欢
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2017-07-05
    相关资源
    最近更新 更多